我试图写一个批处理脚本删除系统驱动器(系统文件夹,文件除外)的所有文件夹和文件,但我卡在文件夹位。 这是一个Windows XP无人值守安装磁盘,我已经集成的更新之一创build一个随机文件夹的C:\驱动器,我不能删除与脚本的名称是随机的。 这是我到目前为止:
@echoclosures 颜色17 回声删除testing 回声。 回声我们希望保持隐藏的方式 如果存在“%systemdrive%\ AUTOEXEC.BAT”attrib + h“%systemdrive%\ AUTOEXEC.BAT” 如果存在“%systemdrive%\ CONFIG.SYS”attrib + h“%systemdrive%\ CONFIG.SYS” 如果存在“%systemdrive%\ Documents and Settings”attrib + h“%systemdrive%\ Documents and Settings” 如果存在“%systemdrive%\ Program Files”attrib + h“%systemdrive%\ Program Files” 如果存在“%systemdrive%\ Sysprep”attrib + h“%systemdrive%\ Sysprep” 如果存在“%systemdrive%\ temp”attrib + h“%systemdrive%\ temp” 如果存在“%systemdrive%\ WINDOWS”attrib + h“%systemdrive%\ WINDOWS” 回声完成! 回声。 echo删除系统驱动器上未隐藏的所有内容 del / q%systemdrive%\ *。* dir / bc:| RD 回声完成! 回声。 回显取消隐藏文件夹 如果存在“%systemdrive%\ AUTOEXEC.BAT”attrib -h“%systemdrive%\ AUTOEXEC.BAT” 如果存在“%systemdrive%\ CONFIG.SYS”attrib -h“%systemdrive%\ CONFIG.SYS” 如果存在“%systemdrive%\ Documents and Settings”attrib -h“%systemdrive%\ Documents and Settings” 如果存在“%systemdrive%\ Program Files”attrib -h“%systemdrive%\ Program Files” 如果存在“%systemdrive%\ Sysprep”attrib -h“%systemdrive%\ Sysprep” 如果存在“%systemdrive%\ temp”attrib -h“%systemdrive%\ temp” 如果存在“%systemdrive%\ WINDOWS”attrib -h“%systemdrive%\ WINDOWS” 回声完成! 回声。 >没有停顿
顺便说一下,我只需要删除一个文件夹。 谢谢。
这是另一个想法。 基本上,您循环遍历%SYSTEMDRIVE%
根目录中的所有文件/文件夹,并使用IF
语句来保护已知的文件/文件夹。 这只是一个示例,并不实际删除任何东西,您将需要修改ECHO ** Deleting %%i
行。 这已经过测试,但不是很严重…请在实际删除之前进行测试。
@ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION FOR /F "usebackq delims==" %%i IN (`DIR %SYSTEMDRIVE%\ /b`) DO ( IF /I "%%i" EQU "Program Files" SET DO_NOT_DELETE=Y IF /I "%%i" EQU "Sysprep" SET DO_NOT_DELETE=Y IF /I "%%i" EQU "Temp" SET DO_NOT_DELETE=Y IF /I "%%i" EQU "Windows" SET DO_NOT_DELETE=Y IF /I "%%i" EQU "junkfile.txt" SET DO_NOT_DELETE=Y IF !DO_NOT_DELETE! EQU Y ( ECHO NOT deleting %%i ) ELSE ( ECHO ** Deleting %%i ** ) SET DO_NOT_DELETE= )
deltree /y yourDirectory
要么
del /s /f yourDirectory && rd /s yourDirectory
资源