Batch file 将文本文件中的特定行读取到批处理文件中的变量
在我试图编写的一个批处理文件中,我需要将5行文本文件中的最后一行读入变量。我想到的一种方法可能是让放入文本文件的每一行都覆盖上一行(因为文件创建和行都是通过命令创建的,特别是slmgr/xpr),但我不确定如何做到这一点。任何建议或替代方法都将不胜感激Batch file 将文本文件中的特定行读取到批处理文件中的变量,batch-file,text,activation,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=
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%
cscript%windir%\system32\slmgr.vbs/xpr>xprtest.txt
暂停
对于/F“skip=4 delims=“%i in(xprtest.txt)set/p xprvar=for
命令现在非常强大:
for /F "skip=4 delims=" %i in (test.txt) do echo %i
跳过前4行,有效地保留第5行。没有分隔符,因此您可以获得完整的行,而不仅仅是该行的第一个标记
用您想对第5行执行的任何操作替换
echo%i
。如果您特别需要第5行:
set "xprvar="
for /F "skip=4 delims=" %%i in (xprtest.txt) do if not defined xprvar set "xprvar=%%i"
或
如果您想要最后一行,而不考虑行数:
for /F "delims=" %%i in (xprtest.txt) do set "xprvar=%%i"
这是对我想做什么的测试。该命令在一个文本文件中插入5行,然后如果所有操作都正确,则获取最后一行并将其放入变量中?cscript%windir%\system32\slmgr.vbs/xpr>xprtest.txt暂停/F“skip=4 delims=“%i in(xprtest.txt)set/p xprvar=将代码添加到OP中以更好地显示。继续获取“发生了意外错误”@user2997654 Replace
set/p xprvar=@user2997654顺便说一句:对问题进行主要编辑并不好,尤其是不要复制答案的部分内容。为什么?因为现在看来我给出的答案比问题更糟糕,所以我有可能被否决。这很有用,谢谢。但是,我必须在文件名前面添加类型,它才能工作。e、 g.'typexprtest.txt'@Magoo我试图获取我文件中的第三行,但它从未获取它不确定出了什么问题set“xprvar=“
for/F”skip=3 delims=“%%i in”(“Z:\my folder\displayname.txt”)如果未定义xprvar set“xprvar=%%i”
@tak,您应该提出自己的问题。您没有说明分配给xprvar
的值-我建议它是文件第4行中的值。注意,这里的OP要求行5
,因此skip
值是4
。因此,由于您需要第3行
,因此将2
,而不是3
指定为跳过
值。
for /F "delims=" %%i in (xprtest.txt) do set "xprvar=%%i"