在我的
Windows批处理文件中,我有一些带有不同数量字符串的变量.
为了exapmle:
为了exapmle:
set string="-start" "-end someOption"
我用以下方式计算String的数量:
Set count=0 For %%j in (%string%) Do Set /A count+=1 echo.Total count: %count%
输出将是:
Total count: 2
现在我想在我的变量中使用Strings多次启动一个应用程序,我想给应用程序提供当前字符串作为参数.我试过这个:
FOR /L %%H IN (1,1,%COUNT%) DO ( echo %%H FOR /F "tokens=%%H " %%I IN ("%string%") Do ( echo %%I rem java -jar app.jar %%I ) )
但不幸的是,这不起作用:这是输出:
Number of current String: 1 “%H “” kann syntaktisch an dieser Stelle
nicht verarbeitet werden. (%H “” can not be used syntacticaly at this
place) Number of current String: 2 “%H “” kann syntaktisch an dieser
Stelle nicht verarbeitet werden.
如何在变量“string”中循环遍历两个字符串?
您不能在FOR / F的选项字段中使用FOR参数或延迟扩展变量.
但是你可以创建一个函数并使用百分比扩展.
但是你可以创建一个函数并使用百分比扩展.
拆分是delim字符的效果,它是默认空间和制表符,它们也适用于带引号的参数.
所以我将分隔符更改为分号,然后就可以了.
set string="-start";"-end someOption" set count=0 For %%j in (%string%) Do Set /A count+=1 echo.Total count: %count% FOR /L %%H IN (1,%COUNT%) DO ( echo %%H call :myFunc %%H ) exit /b :myFunc FOR /F "tokens=%1 delims=;" %%I IN ("%string%") Do ( echo %%~I rem java -jar app.jar %%I ) exit /b