2016-11-05 11 views
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. Но, как я всегда хочу, чтобы то же самое объявление (не в то же самое время) она быстрее нажимать только партии, а не открывать выбор и renameing его с porgramm :)

приветы chrisdi91

+0

См. «Помощь для». Вы не хотите добавлять суффикс к расширению, но вставлять его раньше. Ваша команда Ren должна выглядеть так: «Echo Ren» %% a «" %% ~ na Tenor 1 %% ~ xa "' Эхо для безопасности, когда вывод кажется одобренным, удалите эхо. – LotPings

+1

Вы можете указать несколько шаблонов файлов в 'for', например:' for %% F in (* .txt * .pdf) do ren "%% ~ F" "%% ~ nF Tenor 1 %% ~ xF" ' ... – aschipfl

ответ

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

Значение «если консольная часть имени файла (~%%xa) является NEQ (не равно)„.bat“(/i означает сравнение без учета регистра)»

См for /? |more из командной строки для документации.

BTW - «хочу» - это не слово.

+0

Я согласен - особенно с частью «хочу» ... ;-) – aschipfl

+0

извините, немецкий студент получил только D на английском языке ... – chrisdi91

+0

Спасибо, кстати! это 'For %% a in (*. *) Сделать IF/i" %% ~ xa "neq" .bat "( Ren" %% a "" %% ~ na Tenor 1 %% ~ xa ")' работает как это должно :) – chrisdi91

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"