我遇到了一个问题,我有一个完整的计算机目录列表(位于下面显示的文本文件中)。
如果目录列表包含特殊字符,例如“!或&”,则会出现此问题。当出现该问题时,将解析文件名,以便省略这些特殊字符(从而导致利用这些变量计算其他子任务的问题)。下面是代码的快照。请告知我如何继续。
请注意,文本文件中可能包含以下路径:
C:!\ Windows临时\ file.txt的 C:\的Windows \ file.txt的
这将解析为:
C:\ Windows \ temp \ file.txt(不带引号) C:\的Windows \ file.txt的
for /f "delims=?" %%a in (dir.txt) do (
setlocal enabledelayedexpansion
set filepath=%%a
)
call :subproc1
)
goto :proc2
:subproc1
echo !filepath!
endlocal
goto :eof
:proc2
continue with script here
答案 0 :(得分:1)
您过早地切换延迟扩展,并且不需要子例程。
for /f "delims=?" %%a in (dir.txt) do (
set filepath=%%a
setlocal enabledelayedexpansion
echo !filepath!
endlocal
)
答案 1 :(得分:0)