此代码来自Jeb-
set "lineNr=%1"
set /a lineNr-=1
for /f "usebackq delims=" %%a in (`more +%lineNr% text.txt`) DO (
echo %%a
goto :leave
)
:leave
在我的情况下不起作用。我想将其包含在这样的嵌套for循环中
for %%x in (*.md) do (
set "lineNr=7"
set /a lineNr-=1
for /f "usebackq delims=" %%a in (`more +%lineNr% "%%x"`) DO (
echo %%a
goto :leave
)
:leave
)
如果我使用上述方法,则会出现
错误) was unexpected at this time.
如果我这样做
for %%x in (*.md) do (
set "lineNr=7"
set /a lineNr-=1
for /f "usebackq delims=" %%a in (`more +%lineNr% "%%x"`) DO (
echo %%a
goto :leave
)
)
:leave
然后将不处理所有其他* .md文件,因为我相信我处于循环之外,并且由于“ cmNR”出于某些原因从cmd输出中删除,“ LineNR”已删除,因此它也不起作用-< / p>
set "lineNr=7"
set /a lineNr-=1
for /F "usebackq delims=" %a in (`more + "%x"`) DO (
echo %a
goto :leave
)
)
:leave
Cannot access file G:\test\+
我在做什么错?还是有一种更简单的方法来抓几行并将其输出到txt文件?
答案 0 :(得分:1)
不能真正理解您对数字变量的处理方式,因为处理的每个文件始终为6,但是由于在代码块中,使用该变量时还存在延迟扩展问题。
您可以通过将内部->merge()
命令分解为一个函数来解决问题。
FOR