使用批处理文件删除文件

时间:2014-01-15 14:43:46

标签: batch-file filepath delete-file

我有以下批处理文件片段:

FOR /F %%G IN (
'dir /b /s ApprovalClassLibrary.dll Constants.dll CustomControls.dll NetSpell.SpellChecker.dll'
) do (
ECHO Deleting "%%G"
del %%G
)

我试图用来删除列出的任何DLL文件。

dir命令正确查找文件如下:

    C:\Users\brian\Documents\Visual Studio 2012\Projects\HRActions 10.3.2\ApprovalClassLibrary\bin\Constants.dll
    C:\Users\brian\Documents\Visual Studio 2012\Projects\HRActions 10.3.2\ApprovalClassLibrary\SetupFiles\publish\bin\Constants.dll
    C:\Users\brian\Documents\Visual Studio 2012\Projects\HRActions 10.3.2\Constants\bin\Constants.dll
    C:\Users\brian\Documents\Visual Studio 2012\Projects\HRActions 10.3.2\Constants\obj\x86\Release\Constants.dll
    C:\Users\brian\Documents\Visual Studio 2012\Projects\HRActions 10.3.2\CustomControls\bin\CustomControls.dll
...

但是当我运行脚本时,我得到以下内容

    Deleting "C:\Users\brian\Documents\Visual"
    Could Not Find C:\Users\brian\Documents\Visual
    Deleting "C:\Users\brian\Documents\Visual"
    Could Not Find C:\Users\brian\Documents\Visual
    Deleting "C:\Users\brian\Documents\Visual"
    Could Not Find C:\Users\brian\Documents\Visual
    Deleting "C:\Users\brian\Documents\Visual"
    Could Not Find C:\Users\brian\Documents\Visual
...

由于目录中的空间,路径似乎正在中断。如何才能使用此命令正确扩展路径以便删除文件?

2 个答案:

答案 0 :(得分:2)

您需要添加delims词组:

FOR /F "delims=" %%G IN (

肯定会将DEL更改为

del "%%G"

- 如果不这样做,del将尝试删除参数中提供的文件列表,并使用通常的空格和逗号作为分隔符。

答案 1 :(得分:0)

您需要将"Delims="添加到for语句中,否则默认情况下它会在每个空格中断开。