删除当前文件夹中文件名具有特定文本的文件

问题描述 投票:0回答:2

我正在尝试使用

batch
脚本来删除名称中包含
(
的文件。例如,我要删除的文件的名称为“Test1 - Copy (5).txt”。

我尝试了这个命令,但它不起作用:

for /f "delims=" %%a in (' 
    findstr /l /i /m /c:"(" "C:\Users\Desktop\New folder\*.*"
') do echo del "%%a"

您能帮我获取正确的代码来删除名称中带有

(
的文件吗?谢谢!

batch-file delete-file
2个回答
1
投票

通常,当有人在线向您提供可能具有破坏性的代码(例如删除一堆文件的代码)时,他们会在删除命令前面加上

echo
,以便您可以看到将运行哪些命令。为了实际运行该命令,只需删除
echo
:

for /f "delims=" %%a in ('findstr /l /i /m /c:"(" "C:\Users\Desktop\New folder\*.*"') do del "%%~a"

但是,这需要大量输入(并且出于某种原因,它会对左括号进行不区分大小写的搜索),因此您可以简单地使用通配符来删除名称包含您要查找的字符串的任何文件:

del "%USERPROFILE%\Desktop\New folder\*(*"

0
投票

您可以使用此代码从任何目录中的文件名中删除特定字符串

@echo off
setlocal enabledelayedexpansion

rem Set the specific text you want to remove
set "text_to_remove=your_text"

rem Loop through each file in the current directory
for %%F in (*) do (
    set "filename=%%~nF"
    
    rem Remove the specific text from the file name
    set "new_filename=!filename:%text_to_remove%=!"

    rem Rename the file with the modified name
    ren "%%F" "!new_filename!%%~xF"
)

echo Files with specific_text removed from names.
pause
© www.soinside.com 2019 - 2024. All rights reserved.