批处理文件是否有任何命令来读取文本文件,并将内容用作变量?前段时间我听说过一个命令,它可以读取文本文件的最后一行并将其作为批处理文件中的变量分配,但我不记得该命令是什么或者它是否有效。有这样的命令吗?我尝试过这样的事情:
Set /a var < directory.bat\file.txt
返回值0或
Set /p var < directory.bat\file.txt
或
Set /i var < directory.bat\file.txt
,它给出错误“命令的语法不正确。我是否使用”set“命令在正确的轨道上,或者是否有完全不同的命令(或者我必须写一个完全不同的,多-line脚本来做这个)?
答案 0 :(得分:4)
此操作的经典形式是
for /f "delims=" %%a in (file.txt) do set var=%%a
将var
设置为最后一个非空行的全部内容。
for /f "delims=" %%a in (file.txt) do set var=%%a&goto next
:next
会将var
设置为第一个非空行
for /f "delims=" %%a in (file.txt) do set var=%%a&call :process
...
:process
echo var=%var%
goto :eof
将执行一个子程序,var
依次设置为每个非空白行。
如果没有样本数据,则无法确定哪种形式适合您的情况。
答案 1 :(得分:3)
set /p var=<directory\file.txt
将抓取文本文档的第一行。
答案 2 :(得分:1)
这是一个你可以使用的awk命令
@echo off
for /f "tokens=*" %%a in ('awk "!/^$/{s=$0}END{print s}" myFile.txt') do (
echo last line is %%a
)
答案 3 :(得分:0)
@echo off
set str=^&Type file.txt
echo %str%