Windows批处理脚本:删除文件夹中除
嘿,我想删除文件夹中的所有文件,除了少数文件,现在我想保留的这些文件是普通文件夹&其中一些只是空白文件Windows批处理脚本:删除文件夹中除,windows,batch-file,cmd,Windows,Batch File,Cmd,嘿,我想删除文件夹中的所有文件,除了少数文件,现在我想保留的这些文件是普通文件夹&其中一些只是空白文件 pushd "C:\Folder2" || exit /B 1 for /D %%D in ("*") do ( if /I not "%%~nxD"=="Important Folder1" rd /S /Q "%%~D" ) for %%F in ("*") do
pushd "C:\Folder2" || exit /B 1
for /D %%D in ("*") do (
if /I not "%%~nxD"=="Important Folder1" rd /S /Q "%%~D"
)
for %%F in ("*") do (
del "%%~F"
)
popd
这是我的当前代码,它只保留1个文件夹,但我想保留所有3个文件夹+我的2个空白文件
pushd "C:\Folder2" || exit /B 1
for /D %%D in ("*") do (
if /I not "%%~nxD"=="Important Folder1" rd /S /Q "%%~D"
)
for %%F in ("*") do (
del "%%~F"
)
popd
[编辑](来自评论部分)
我试过,像这样:
pushd "%LOCALAPPDATA%\Google\ChromeVoter\User Data\Default\" || exit /B 1
for /D %%D in ("*") do (
if /I not "%%~nxD"=="Important Folder1" rd /S /Q "%%~D"
if /I not "%%~nxD"=="Important Folder2" rd /S /Q "%%~D"
if /I not "%%~nxD"=="Important Folder3" rd /S /Q "%%~D"
)
for %%F in ("*") do (
del "%%~F"
)
popd
不起作用。
您没有考虑使用<代码> if /i i“%%~nxd”=“重要的文件夹2”/代码>和<代码>如果/我不是“%%~nxd”=“重要的FLDR3”< /代码>?在第二个循环中,您没有对文件使用相同的方法,有什么特别的原因吗?像这样?没用@我已经在第三方网站上添加了这段代码,请您以后也这样做。另外,“没有工作”,不是一个合适的解释,请提供更多的调试信息。如果你这样做会发生什么:if/I not“%%~nxD”==“maintal Folder1”if/I not“%%~nxD”==“maintal Folder2”if/I not“%%~nxD”==“maintal Folder3”RD/S/Q“%%~D”
?这段代码看起来很像我。无论如何,您的逻辑是错误的,与一个(负)条件不匹配的文件夹仍然与其他条件匹配,因此重要文件夹2
会被行删除,例如,如果/I不是“%%~nxD”==“重要文件夹1”rd/S/Q“%%~D”
…