Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 将文本文件中的特定行读取到批处理文件中的变量_Batch File_Text_Activation - Fatal编程技术网

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

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=

在我试图编写的一个批处理文件中,我需要将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%
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"