批处理脚本在文件夹路径中有空格

时间:2017-10-16 10:42:33

标签: file batch-file directory spaces

我编写了以下代码,从多个文件夹(文件夹1,文件夹2等)中删除文件和子文件夹。当文件夹名称中没有空格时,脚本可以成功运行,但是无法删除临时文件(files2del.txt)和空格时的子文件夹。路径以点结尾。

@echo off

setlocal EnableDelayedExpansion

set folder[0]=Folder 1
set folder[1]=Folder 2

for /l %%s in (0,1,1) do (
  set "var=C:\directory\!folder[%%s]!"
  dir "!var!"/s/b/a | sort /r >> !var!\files2del.txt
  for /f "delims=;" %%D in (!var!\files2del.txt) do (del /q "%%D" & rd "%%D")
  pause
)
exit

以下似乎是问题所在。

for /f "delims=;" %%D in (!var!\files2del.txt) do (del /q "%%D" & rd "%%D")

我尝试了各种各样的事情,比如%,引用等但无济于事。

由于

1 个答案:

答案 0 :(得分:1)

尝试:

for /f "usebackq delims=;" %%D in ("!var!\files2del.txt") do (del /q "%%D" & rd "%%D")

当使用usebackq选项时,您可以在读取文件时使用双引号。但FOR /?消息中没有提到它。