在标准的Windows批处理文件(.cmd)中,我想这样做:
FOR /F "skip=0" %%G IN (filename.txt) DO ( ECHO %%G )
但我得到" was unexpected at this time.
"skip=1"
工作正常(在我的实际代码0
中是一个变量)。
根据ss64.com,默认值为skip=0
,但在显式设置时似乎无效。
我做错了吗?或者我有可以使用的解决方法吗?
修改
我在Windows Server 2003和Windows 7上都试过这个。
filename.txt的内容可以是:
something
stuff
unicorns
答案 0 :(得分:6)
它真的不喜欢0
,导致解析器在它之后期望更多(你也可以在尝试使用09
时将其绊倒,它尝试解析为八进制,失败)。
我想你需要创建一个环境变量来保存整个skip=n
部分或什么都没有,并将其插入到参数列表中。像
if %N% GTR 0 (
set SKIP="skip=%N%"
) else (
set SKIP=
)
然后使用
for /f %SKIP% %%G ...
(如果您需要传递更多选项,则不带引号)。
答案 1 :(得分:0)
我添加一个“”false“”第一行以避免IF行,并随时保持“跳过”:
:: liste des fichiers du repertoire et de ses sous-repertoires
echo *** liste des fichiers du repertoire et de ses sous-repertoires >%FicListImg%
dir /s /b /a:-d %RepImg%\*.* >> %FicListImg%
set compteurA=0
for /f %%a in (%FicListImg%) do set /a CompteurA+=1
set /a CompteurA = %CompteurA%-1
set /a NbImg = %CompteurA%-1
@echo Repertoire Images : %RepImg% (%NbImg% images)