我想将文本文件的输出存储到变量中,因此我可以将整个文件作为参数传递。
我正在使用Windows 2003 Server。
文本文件有多行,如:
10.20.210.100 fish
10.20.210.101 rock
我正在使用:
Set /P var=<file.txt
它只读取文件的第一行。
我尝试使用FOR
循环,但它只为变量分配了最后一行。
答案 0 :(得分:2)
没有简单的方法可以将文件的完整内容整合到一个变量中。 变量的长度限制为~8100。 将CR / LF变为变量
很复杂但是使用FOR循环,你可以获得每一行。
请查看batch script read line by line
修改强> 要在单个变量中获取每一行,您可以使用此
@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!
答案 1 :(得分:0)
Jeb的脚本工作正常,但是如果你回显%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%
现在你将在机器人案件中获得相同的结果。