【发布时间】:2014-09-28 18:50:55
【问题描述】:
下面的 for 循环结果在我的机器上与预期不符。 我无法找出我做错了什么。
请在下面找到 check.bat 和 softwareList.txt 的代码清单。 softwareList.txt 也在 check.bat 所在的同一目录中。
check.bat
@echo off
call:updateVariables check
goto:eof
:updateVariables
set operation=%~1
echo %operation%
setlocal enabledelayedexpansion
for /F "tokens=*" %%A in (softwareList.txt) do (
set bundle=%%A
echo a. command %%A %operation%
echo b. command %bundle% %operation%
)
endlocal
goto:eof
下面是softwareList.txt:-
maven
tomcat
derby
java
eclipse
预期结果:-
check
a. command maven check
b. command maven check
a. command tomcat check
b. command tomcat check
a. command derby check
b. command derby check
a. command java check
b. command java check
a. command eclipse check
b. command eclipse check
实际结果:-
check
a. command maven check
b. command java check
a. command tomcat check
b. command java check
a. command derby check
b. command java check
a. command java check
b. command java check
a. command eclipse check
b. command java check
另外,如何从 for 循环结果迭代中修剪尾随和前导空格? 我在 for 循环中使用以下命令,但它不起作用:-
set A=%A:~0,-1%
【问题讨论】:
标签: windows batch-file scripting