用于从文本文件中提取变量的批处理命令

时间:2014-01-08 02:28:58

标签: batch-file

批处理文件是否有任何命令来读取文本文件,并将内容用作变量?前段时间我听说过一个命令,它可以读取文本文件的最后一行并将其作为批处理文件中的变量分配,但我不记得该命令是什么或者它是否有效。有这样的命令吗?我尝试过这样的事情:

Set /a var < directory.bat\file.txt

返回值0或

Set /p var < directory.bat\file.txt

Set /i var < directory.bat\file.txt

,它给出错误“命令的语法不正确。我是否使用”set“命令在正确的轨道上,或者是否有完全不同的命令(或者我必须写一个完全不同的,多-line脚本来做这个)?

4 个答案:

答案 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
)

您可以下载awk herehere

答案 3 :(得分:0)

@echo off
set str=^&Type file.txt
echo %str%