windows bat中有这样一个遍历test.txt中的内容并打印的test.bat脚本:
1
2
3
4
|
@
echo
off
if
"%~1"
==
""
set
SORHOME=D:\
test
()
if
not
"%~1"
==
""
set
SORHOME=%~1
for
/f
%%i
in
(%SORHOME%\
test
.txt)
do
echo
%%i
|
脚本的执行结果是:
【问题】:
SORHOME变量的路径中带有“()”, 为了解决括号的问题,尝试了很多种,包括变量两边单引号,双引号,这些都不可以。
【解决办法】:文件夹命名的时候禁止带‘()’,因为这个(), 在bat脚本中的for需要用到。
【修改结果】:
1
2
3
4
|
@
echo
off
if
"%~1"
==
""
set
SORHOME=D:\
test
if
not
"%~1"
==
""
set
SORHOME=%~1
for
/f
%%i
in
(%SORHOME%\
test
.txt)
do
echo
%%i
|
【执行结果】:
【备注】:
test.txt 内容就是
1
2
3
4
5
6