将文本文件中的特定行读取到批处理文件中的变量

时间:2014-03-10 17:54:57

标签: batch-file text activation

在我试图编写的一个批处理文件中,我需要将5行文本文件中的最后一行读入变量。我想这样做的一种方法可能是让每个放入文本文件的行都覆盖前一行(因为文件创建和行都是由命令创建的,特别是slmgr / xpr)但是我不知道如何做这个。任何建议或其他方式这样做表示赞赏!

cscript %windir%\system32\slmgr.vbs /xpr > xprtest.txt
pause
for /F "skip=4 delims=" %i in (xprtest.txt) set /p xprvar= <xprtest.txt
pause
echo %xprvar%

2 个答案:

答案 0 :(得分:7)

如果你想要专门的第5行:

set "xprvar="
for /F "skip=4 delims=" %%i in (xprtest.txt) do if not defined xprvar set "xprvar=%%i"

OR

for /F "skip=4 delims=" %%i in (xprtest.txt) do set "xprvar=%%i"&goto nextline
:nextline

如果你想要最后一行而不管行数:

for /F "delims=" %%i in (xprtest.txt) do set "xprvar=%%i"

答案 1 :(得分:4)

for命令现在非常强大:

for /F "skip=4 delims=" %i in (test.txt) do echo %i

跳过前4行,有效地留下第5行。没有分隔符,因此您可以获得完整的行,而不仅仅是该行的第一个标记。

echo %i替换为您想要对第5行执行的任何操作。