Batch file 要删除文件夹但保留某个子文件夹的批处理文件?

Batch file 要删除文件夹但保留某个子文件夹的批处理文件?,batch-file,file-io,Batch File,File Io,我正在尝试清除一个文件夹中的所有内容,但不包括某个子文件夹及其内容。我的删除工作正常,但我不知道如何排除 cd C:\testfolder del * /S /Q rmdire /S /Q "C:\testfolder" 但是我不想删除文件夹C:\testfolder\subf。如何执行此操作?如果您的意思是要删除所有文件而不是子文件夹,则可以使用以下命令 cd C:\testfolder del *.* /S /Q 这将删除“testfolder”中的所有文件和子文件夹中的所有文件,但会将

我正在尝试清除一个文件夹中的所有内容,但不包括某个子文件夹及其内容。我的删除工作正常,但我不知道如何排除

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

但是我不想删除文件夹
C:\testfolder\subf
。如何执行此操作?

如果您的意思是要删除所有文件而不是子文件夹,则可以使用以下命令

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

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

如果您至少使用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 

很抱歉,我想保留子文件夹及其内容不变。试试这个,然后在发布问题之前我确实试过了,但我无法让它工作。要么删除所有内容,要么什么都不删除。是否要删除整个目录,包括其所有子目录(不包括一个子目录及其内容)?