为什么FOR/F"skip = 0"失败?

ste*_*hin 5 cmd batch-file

在标准的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)

Joe*_*oey 6

它真的不喜欢它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)

(如果您需要传递更多选项,则不带引号).