在标准的Windows批处理文件(.cmd)中我想做:
FOR /F "skip=0" %%G IN (filename.txt) DO ( ECHO %%G )
Run Code Online (Sandbox Code Playgroud)
但我明白了 " was unexpected at this time.
"skip=1"
工作正常(在我的实际代码中0
是一个变量).
根据ss64.com默认是skip=0
,但是在明确设置时它似乎不起作用.
我做错了吗?或者我有可以使用的解决方法吗?
编辑:
我在Windows Server 2003和Windows 7上都试过这个.
filename.txt的内容可以是:
something
stuff
unicorns
Run Code Online (Sandbox Code Playgroud)
它真的不喜欢它0
,导致解析器在它之后期望更多(你也可以在尝试使用09
它时尝试解析为八进制,失败).
我想你需要创建一个环境变量来保存整个skip=n
部分或什么都没有,并将其插入到参数列表中.就像是
if %N% GTR 0 (
set SKIP="skip=%N%"
) else (
set SKIP=
)
Run Code Online (Sandbox Code Playgroud)
然后使用
for /f %SKIP% %%G ...
Run Code Online (Sandbox Code Playgroud)
(如果您需要传递更多选项,则不带引号).