Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows批处理脚本:删除文件夹中除_Windows_Batch File_Cmd - Fatal编程技术网

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”