如何使用命令提示符/批处理文件删除特定文件

时间:2016-12-21 06:23:19

标签: batch-file cmd

我在同一个文件夹中有2个文件。 这些文件名是 的 test.xlsx 和 的 test.xlsx.jhdrsx

我想删除第二个文件。 (test.xlsx.jhdrsx)

我应该说,如果文件扩展名长度为6个字符,那么"删除文件" 要么 如果有#6个字符直到"。",则删除

我有60k这样的文件。

2 个答案:

答案 0 :(得分:0)

在Windows中不幸的是,在这种情况下没有适用的文件模式。 但你可以试试这样的脚本:

for /f "delims=" %d in ('dir /b ^| findstr /r "/c:\.[^\.\\][^\.\\][^\.\\][^\.\\][^\.\\][^\.\\]$"') do del "%~d"

这将列出当前目录中的文件并按以下方式过滤:extension只有六个字符。 模式是:

  • 一点
  • 除了点或反斜杠之外的任何字符的六倍
  • 行尾

答案 1 :(得分:0)

对于每个文件(*)检查扩展名(%%~xa)第六个字符是否为空并且第七个字符为空( - &gt;扩展名正好是六个字符长)然后删除该文件。<登记/> /R使其递归(搜索子文件夹),"C:\"定义起始文件夹。

 @echo off
setlocal enabledelayedexpansion
for /R "C:\" %%a in (*) do (
  set ext=%%~xa
  if "!ext:~7,1!" equ "" if "!ext:~6,1!" neq "" ECHO del "%%a"
)

注意:此代码只是将删除命令输出到屏幕。如果您满意,请删除ECHO