Board logo

标题: call 跳出 for 后就不能去引号了吗? [打印本页]

作者: 26933062     时间: 2007-6-3 17:39    标题: call 跳出 for 后就不能去引号了吗?

我写了个查看 mp3歌曲列表的批处理
发现跳出for后没办法去掉引号??
将红色部分改成 %1就可以,为什么呢?
@echo off
set var=1
for /f "delims=" %%b in ('dir/b E:\音乐\*.mp3') do call :loop "%%b"
pause
goto :eof
:loop
set num=%1
if %var% lss 10 (echo 0%var% %num:"=%) else (echo %var% %num:"=%)
set/a var+=1
goto :eof
作者: stornager     时间: 2007-6-3 17:49
"%%b"的双引号不需要吧.
作者: kernelv     时间: 2007-6-3 17:50
直接 set num=%~1 不可以吗?
作者: 26933062     时间: 2007-6-3 17:54
搞定了,谢各位,原来是我的歌曲名字含了特殊符号.
请问有什么办法解决整个问题吗?
我想显示的结果不含引号.
作者: huahua0919     时间: 2007-12-3 16:05
@echo off
set var=1
for /f "delims=" %%b in ('dir/b E:\音乐\*.mp3') do call :loop "%%b"
pause
goto :eof
:loop
setlocal EnableDelayedExpansion
set num=%1
if %var% lss 10 (echo 0%var% !num:"=!) else (echo %var% !num:"=!)
set/a var+=1
goto :eof
作者: zh159     时间: 2007-12-3 17:21
%1改为%~1就可以去掉引号了