删除文件夹中除具有特定前缀的文件之外的所有文件

删除文件夹中除具有特定前缀的文件之外的所有文件

我有一个文件夹,里面装满了应用程序自动生成的文件。其中创建并存储了 csv 和 png 扩展名。我们需要删除文件夹中的所有文件,除了文件名以“abc-”开头的某些 png 文件。系统是 Windows Server 2012 R2 机箱,目标是每晚使用任务计划程序通过批处理文件完成此操作。

我尝试使用几个预先编写的不同脚本,但无法排除这些带前缀的 png 文件,只能删除所有文件。我该怎么做?

答案1

你可以尝试 powershell 吗?例如:

$path = "C:\site\temp"
gci -Path $path | ? {!($_.Name -ilike "abc-*.png")} | % { Remove-Item -Path $_.FullName }

答案2

使用 Batch,您可以按照以下方式进行操作:

@Echo OFF 

For %%# In ("*.*") DO (
    If /I "%%~x#" EQU ".png" (
        (Echo "%%~n#"| Findstr "^abc-")1>nul 2>&1 || (
            Del /Q "%%~#"
        )
    )
)


Pause&Exit

我迭代所有文件(具有扩展名),然后如果文件具有“ .png”扩展名,我会评估文件名是否以“abc-”开头以将其排除。

请在测试之前备份您的文件夹。

答案3

另外,请在测试之前备份您正在处理的文件夹的内容。

步骤一:在相关文件夹下创建一个子目录。
步骤二:将要保存的文件移至该子目录。
步骤三:删除文件夹中剩余的所有内容。
步骤四:将文件从子目录移回文件夹。
步骤五:删除子目录。
步骤六:查看您拥有的内容。

以下是一个简单的脚本。

REM C:\SCRIPTS\MOVERPNG.CMD
C:
ECHO OFF
CLS
CD \SITE\TEMP 
MD BAR  
MOVE /y ABC-*.PNG \SITE\TEMP\BAR  
DEL /y *.PNG  
DEL /y *.CSV  
CD BAR  
MOVE *.PNG C:\SITE\TEMP 
CD ..  
RD /q BAR
ECHO MOVERPNG has completed.
DIR *.* /P /O:N 

相关内容