File 文件夹路径中带有空格的批处理脚本

File 文件夹路径中带有空格的批处理脚本,file,batch-file,directory,spaces,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\!

我编写了以下代码,以从多个文件夹(文件夹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")
我试过各种各样的方法,比如,%引号等,但都没有用

谢谢

试试:

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

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

来自
FOR
命令帮助文件的
usebackq
部分:允许在文件集中使用双引号引用文件名