批量读取文件没有新行

时间:2015-03-24 15:34:18

标签: batch-file

我的脚本读取到文件的可变内容,但在某些情况下,文件有新行。变量加载了olny firest line。我用:

set /p varfile=file.txt

是否可以使用忽略的换行符读取文件的内容?我无法通过批量命令找到solition。

1 个答案:

答案 0 :(得分:2)

虽然这可能不是您所需要的,但这就是您所要求的。您可以使用for循环将文件的全部内容捕获到单个变量(最多8191个字节,是吗?)。由于for /f可以读取文件的内容,因此您最终可以消除您一直滥用的set /p语句。

@echo off
setlocal enabledelayedexpansion

rem // capture a line break to a variable
set BR=^


rem // Leave the two lines above blank.

for /f "usebackq delims=" %%I in ("file.txt") do (

    if not defined contents (
        rem // set contents variable to first line of file
        set "contents=%%I"
    ) else (
        rem // append line break + next line to variable
        set "contents=!contents!!BR!%%I"
    )
)

echo(!contents!

现在,由于它包含文本文件的全部内容,您现在要对此变量做什么?