使用RMDIR保留2个特定文件夹

时间:2018-04-19 16:19:26

标签: batch-file cmd rmdir

作为我工作的一部分,我需要从正在海上运送的计算机中删除文件,这项任务每周进行几次并且可以编写脚本,但是我对脚本很糟糕,我绝不是一个编写器任何形式。

我的问题是我需要清除C:\Users文件夹,同时保留PublicDefault个文件夹。我知道如何删除目录和所有子文件夹但是我不知道如何保留这两个文件夹。

我到目前为止的代码是:

@Echo off
color F

:Choice
Echo.
Echo.
set choice=
set /p choice="Type Y to proceed or N to close the tool and then press ENTER:----"

IF '%Choice%' =='Y' GOTO DELETE
IF '%Choice%' =='y' GOTO DELETE
IF '%Choice%' =='N' GOTO END
IF '%Choice%' =='n' GOTO END

:DELETE
rmdir /S /Q C:\***PATH***\***FOLDERNAME***
rmdir /S /Q C:\***PATH***\***FOLDERNAME***
rmdir /S /Q C:\***PATH***\***FOLDERNAME***
rmdir /S /Q C:\***PATH***\***FOLDERNAME***

Echo.
Echo.
@Echo        All Files Removed
GOTO END

:END
echo.
echo.
Echo             *****...Closing programme... Please wait...*****
Timeout /t 3
exit

你知道这是否可能吗?

1 个答案:

答案 0 :(得分:2)

以管理员身份运行的以下方法可能适用于您:

@Echo Off
Color 0F
Echo=&Echo=
Choice /N /M "Type Y to proceed or N to close the tool"
If ErrorLevel 2 Exit /B
For /F Tokens^=2^Delims^=^" %%A In ('WMIC Path Win32_UserProfile Where^
 "Special!='True'" Assoc /AssocClass:Win32_UserAccount 2^>Nul'
) Do WMIC UserAccount Where "SID='%%A' And LocalAccount='TRUE'" Delete
Echo=&Echo=&Echo    All Files Removed&Echo=&Echo=
Echo    *****...Closing programme... Please wait...*****
Timeout 3 /NoBreak>Nul
Exit /B

Special!='True'会忽略特殊帐户,其中包括AdministratorPublicDefault