将文件输出存储到variables中

我想存储文本文件的输出到一个variables,所以我可以传递整个文件作为参数。

我正在使用Windows 2003 Server。

文本文件有多行,如:

10.20.210.100 fish 10.20.210.101 rock 

我正在使用:

 Set /P var=<file.txt 

它只读取文件的第一行。

我也尝试了FOR循环,但它只分配到variables的最后一行。

Solutions Collecting From Web of "将文件输出存储到variables中"

没有简单的方法可以将文件的完整内容合并到一个变量中。 一个变量的长度约为8100。 把CR / LF变成变量是很复杂的

但是用FOR循环,你可以得到每一行。

看一下批处理脚本逐行阅读

编辑:要获得每一行在一个单一的变量,你可以使用这个

 @echo off SETLOCAL EnableDelayedExpansion set n=0 for /f "delims=" %%a IN (example.txt) do ( set /a n+=1 set "line[!n!]=%%a" echo line[!n!] is '%%a' ) set line 

或者只有一个变量(没有CR / LF)

 @echo off SETLOCAL EnableDelayedExpansion set "line=" for /f "delims=" %%a IN (example.txt) do ( set "line=!line! %%a" ) echo !line! 

杰布的脚本是完美的工作,但如果你回声%行%它包含每行文件时间的行号。 如果你使用echo!Line! ,它包含一个!行! 也与其他线。 我做了一些脚本修改,现在我得到了预期的结果。

 @echo off SETLOCAL EnableDelayedExpansion set "line=" for /f "delims=" %%a IN (example.txt) do ( set "line1=%%a" set "line=!line1! and %%a" ) echo !line! 

要么

 echo %line% 

现在你会在bot案例中得到相同的结果。