gpt4 book ai didi

dos - 如何删除除 DOS 中的某些文件之外的所有文件/子目录?

转载 作者:行者123 更新时间:2023-12-04 01:39:04 27 4
gpt4 key购买 nike

我正在寻找一个 DOS 脚本来删除根目录中的所有文件和子目录,但根目录中的一组批处理文件 (*.bat) 除外。任何 DOS 运动员都知道一种简单的方法来做到这一点?

更新

谢谢大家的帮助。这就是我现在所处的位置(见下文)。我正在使用 Ken 的建议来删除文件。如果 del,我想知道如何停止此脚本的运行或 RD由于锁定文件/目录,命令失败。有谁知道怎么做?现在,这个脚本会在删除后做很多事情,如果任何删除失败,我想停止脚本。

@echo off

REM *********************************************************************
REM * Delete all files and subdirs except for batch files in the root *
REM *********************************************************************

REM Delete all files in current dir except bat files. Does this by a) setting the attributes of *.bat files to
REM readonly and hidden, b) deleting the rest, c) reseting the attributes

attrib +r +s *.bat
del *.* /S /Q
attrib -r -s *.bat

REM Deletes ALL subdirectories

FOR /D %%G in (*) DO RD /s /q %%G

最佳答案

您可以先将要保留的文件的属性设置为只读和隐藏,然后删除其余文件,然后将隐藏、只读文件的属性重新设置回来。

attrib +r +s *.bat
del *.*
attrib -r -s *.bat

我曾经经常这样做,并编写了一个批处理文件来自动执行此操作:
@echo off
@ if "%1" == "%9" goto help
@ if /i %1 EQU ? goto help
@ if /i %1 EQU help goto help
@ attrib +h +s %1
@ %2 %3 /Q
@ attrib -h -s %1
@ goto :EOF
:help
@echo ╔═══════════════════════════════════════════════════════╗
@echo ║ except filespec1 doscommand filespec2 ║
@echo ║ ║
@echo ║ filespec1 The files to exclude from doscommand ║
@echo ║ doscommmand The DOS command to execute on filespec2 ║
@echo ║ filespec2 The files to execute doscommand against ║
@echo ║ ║
@echo ║ Example: ║
@echo ║ ║
@echo ║ except *.txt del *.* ║
@echo ║ ║
@echo ║Deletes all files except text files in the directory ║
@echo ╚═══════════════════════════════════════════════════════╝

使用 hidden 属性可能没问题,但我知道 del 不会触及隐藏的系统文件,所以我设置了两者。安全总比抱歉好,国际海事组织。

基于 Marcus 的评论:如果您想将其扩展为包含当前目录的子目录,只需将两个 attrib 行更改为
attrib <remainder of line>  /S

并将两条属性线之间的线更改为
@ %2 %3 /Q /S

这应该适用于您希望 except.bat 做的大多数事情。

关于dos - 如何删除除 DOS 中的某些文件之外的所有文件/子目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558648/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com