2017-10-16 220 views
1

我写了以下代码,以从多个文件夹(文件夹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

尝试:

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

您可以使用阅读文件时,当usebackq选项used.Tough它不是在FOR /?消息中提到的双引号。

+0

感谢此工作 – learningpython

+1

FOR'命令帮助文件的'usebackq'部分:**允许使用双引号引用文件集中的文件名** – Squashman

相关问题