标题: 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就可以去掉引号了