0

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

@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

是否可以*.*在有例外的情况下使用(对于.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

4

2 回答 2

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

意思是“如果文件名的扩展部分(~%%xa)是NEQ(不等于)'.bat'(/i表示不区分大小写的比较)”

for /? |more从提示中查看文档。

顺便说一句 - “想要”不是一个词。

于 2016-11-05T15:42:17.213 回答
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"
于 2016-11-05T16:01:39.420 回答