用于添加除批处理文件之外的多个文件的后缀的批处理

Batch for adding suffix of several files except of batchfiles

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

@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 重命名它会更快 :)

问候 克里斯迪91

For %%a in (*.*) Do IF /i "%%~xa" neq ".bat" (

含义"if the eXtension part of the filename (~%%xa) is NEQ (not equal to) '.bat' (/i means case-insensitive comparison)"

请参阅文档提示中的 for /? |more

顺便说一句 - "wanna" 不是一个词。

我会post我的批次只是为了展示一批中的排除和包含方式只是为了演示。

@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"