批量添加除批处理文件以外的多个文件的后缀

时间:2016-11-05 15:30:46

标签: windows batch-file add rename suffix

我已经找到了一些重命名文件的解决方案。 有些没有真正起作用,有些只在文件结尾后添加了后缀,如

@echo off
Setlocal enabledelayedexpansion

For %%a in (*.*) Do (
Ren "%%a" "%%a Tenor 1"
)

Pause&Exit

我的问题: 我在文件夹中有几种文件类型:

song1.mp3
song2.mp3
Text1.txt
Text2.txt
Document1.pdf
Document2.pdf
Add_Tenor_1.bat
Add_Tenor_2.bat
ReplaceBlankwithUnderline.bat

等等。 现在我想添加例如除了批处理文件之外的所有文件,例如“* Tenor 1”这样的后缀。

song1 Tenor 1.mp3
song2 Tenor 1.mp3
Text1 Tenor 1.txt
Text2 Tenor 1.txt
Document1 Tenor 1.pdf
Document2 Tenor 1.pdf
Add_Tenor_1.bat
Add_Tenor_2.bat
ReplaceBlankwithUnderline.bat

是否可以在具有异常的for条件中使用*.*(对于.bat)? 批处理文件的代码如何?

另一件事是仅为.txt和.pdf文件添加后缀。 这是在一个例程中工作还是我需要一个用于.txt和一个用于.pdf?

song1.mp3
song2.mp3
Text1 Tenor 1.txt
Text2 Tenor 1.txt
Document1 Tenor 1.pdf
Document2 Tenor 1.pdf
Add_Tenor_1.bat
Add_Tenor_2.bat
ReplaceBlankwithUnderline.bat

这个批处理文件的代码怎么样?

非常感谢你!

我知道有像Renamer这样的程序。但是因为我总是希望同样(不是同时),只需按批次而不是打开选择并用porgramm重命名它更快:)

问候 chrisdi91

2 个答案:

答案 0 :(得分:2)

while

含义“如果文件名(For %%a in (*.*) Do IF /i "%%~xa" neq ".bat" ( )的eXtension部分是NEQ(不等于)'。'''(~%%xa表示不区分大小写的比较)”

请参阅文档提示中的/i

BTW - “想要”不是一个词。

答案 1 :(得分:1)

我发布我的批次只是为了展示一批中的排除和包含方式,以便进行演示。

@echo off
Setlocal enabledelayedexpansion
Set "Exclude=.bat$ .cmd$ .exe$ .vbs$ " 
Set "Include=*.txt *.pdf"

For /f "Delims=" %%a in (
  'Dir /B %Include% ^| findstr /i /V "%Exclude%" '
  ) Do Echo Ren "%%a" "%%~na Tenor 1%%~xa"

Pause
Goto :Eof


Ren "Document1.pdf" "Document1 Tenor 1.pdf"
Ren "Document2.pdf" "Document2 Tenor 1.pdf"
Ren "Text1.txt" "Text1 Tenor 1.txt"
Ren "Text2.txt" "Text2 Tenor 1.txt"
Ren "vm_fire.txt" "vm_fire Tenor 1.txt"
Ren "vm_idle.txt" "vm_idle Tenor 1.txt"