批处理文件删除文件夹但保留某个子文件夹?

时间:2014-08-13 13:51:51

标签: batch-file file-io

我正在尝试清除所有内容的文件夹,但是某个子文件夹及其内容。我的删除工作正常,但我无法弄清楚如何排除。

cd C:\testfolder
del * /S /Q
rmdire /S /Q "C:\testfolder"

但我不想删除文件夹C:\testfolder\subf。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

如果您要删除所有文件但不删除子文件夹,则可以使用以下

cd C:\testfolder
del *.* /S /Q

这将删除“testfolder”中的所有文件以及子文件夹中的所有文件,但会将子文件夹保留在那里。

答案 1 :(得分:0)

如果你至少使用windows vista(使用robocopy命令),这应该可以完成这项工作

@echo off
    setlocal enableextensions disabledelayedexpansion

    rem Create a temporary empty folder
    set "tempFolder=%temp%\%~nx0.%random%%random%%random%.tmp"
    md "%tempFolder%"  >nul 2>nul 

    rem Purge from target folder anything not in the empty source folder, 
    rem but exclude the indicated folder
    robocopy "%tempFolder%" "c:\testfolder" /nocopy /purge /xd "c:\testfolder\subfolder"

    rem Cleanup        
    rmdir "%tempFolder%" /s /q >nul 2>nul