我有一个文件夹,里面装满了应用程序自动生成的文件。其中创建并存储了 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