Batch file 如何使用命令提示符删除除一个文件夹及其内容之外的所有文件夹?
例如,假设我有一个文件夹Batch file 如何使用命令提示符删除除一个文件夹及其内容之外的所有文件夹?,batch-file,cmd,Batch File,Cmd,例如,假设我有一个文件夹abc,其中包含子文件夹1,2,3,4。现在我想删除除文件夹2及其内容之外的所有文件夹。我试过了 PUSHD (c:\abc\2) rd /s /q "C:\abc" 2>nul 但它也会删除2文件夹中的文件。我不想删除文件夹2的任何文件?以下代码应该可以工作: for /D %%D in ("C:\abc\*.*") do ( if /I not "%%~nxD"=="2" ( 2> nul rd /S /Q "%%~fD"
abc
,其中包含子文件夹1
,2
,3
,4
。现在我想删除除文件夹2
及其内容之外的所有文件夹。我试过了
PUSHD (c:\abc\2)
rd /s /q "C:\abc" 2>nul
但它也会删除
2
文件夹中的文件。我不想删除文件夹2
的任何文件?以下代码应该可以工作:
for /D %%D in ("C:\abc\*.*") do (
if /I not "%%~nxD"=="2" (
2> nul rd /S /Q "%%~fD"
)
)
for/D
循环遍历目录1
,2
,3
,4
if
语句检查当前迭代目录的名称是否为2
在命令提示窗口中键入pushd/?
后阅读帮助文本;你会发现pushd
将给定的目录更改为当前目录,而不是其他任何内容…@aschipfl这个想法可能是“当我在该文件夹中时,它不能被删除”@Stephan,所以你也必须在所有子目录中并打开所有文件?我说这可能是个想法,而不是它会按预期工作:P是的,要让它工作,你必须“也在所有子目录中并打开所有文件”