Windows bat文件 - 从目录中删除

时间:2010-11-03 09:15:09

标签: file batch-file delete-file

你能帮我解决以下问题吗? 我经常必须执行相同的任务,即从一个目录中删除几乎所有文件 - 所有文件只有2个(比如1st.file和2nd.file)。 我找到了多个解决方案,如何从目录中删除所有,但不知道如何解决这个问题。 你能指出在哪里找到解决方案吗?

3 个答案:

答案 0 :(得分:0)

这样的事可能会让你开始。

@ECHO OFF
SET RemoveFolder=C:\Temp

MV %RemoveFolder%\1st.file 1st.file
MV %RemoveFolder%\2nd.file 2nd.file
RD /S /Q %RemoveFolder%
IF NOT EXIST %RemoveFolder% MD %RemoveFolder%
MV 1st.File %RemoveFolder%
MV 2nd.File %RemoveFolder%

SET RemoveFolder=

答案 1 :(得分:0)

DONOTDELETE.ME替换为您的文件,该文件不会被删除。

@echo off
for /r . %%a in (*.*) do (
    IF NOT "%%~nxa" == "DONOTDELETE.ME"  (
         DEL "%%a"    )
)

你也可以对有问题的文件attrib -r进行操作,然后删除只读标志:

@echo off
cd \myFiles
attrib myFiles\DONOTDELETE1.ME +r
attrib myFiles\DONOTDELETE2.ME +r
del myFiles\*.* /q /s /a-r
attrib myFiles\DONOTDELETE1.ME -r
attrib myFiles\DONOTDELETE2.ME -r
for /f %%a in ('dir myFiles/ad /b') do echo rd myFiles\%%a /q/s

答案 2 :(得分:0)

这有点hackish,但您可以只更改您不想删除的文件的属性...然后在调用erase时排除具有该属性的所有文件。

这样打电话: TestDelete.Bat“c:\ DeleteAllFilesExcept”,LeaveFile1.txt,LeaveFile2.txt

ATTRIB +H %2
ATTRIB +H %3

erase %1 /A-H

ATTRIB -H %2
ATTRIB -H %3

当然,如果您打算从目录中删除隐藏文件,这将无效。