2014-09-14 3 views
0

У меня есть папка, из которой я хотел бы снять расширение SECOND. Мне нужен пакетный файл, который будет делать это:Пакетный файл, который устранит второе расширение

-part1.prt.1
-sub-assembly.asm.3
-part2.prt.5
-part6.prt.3

Это то, что мне нужно:

-part1.prt
-sub-assembly.asm
-part2.prt
-part6.prt

+0

Я попытался модифицировать пакетный файл, перечисленные здесь: http://stackoverflow.com/questions/12978036/change-file-extensions-and-name -at-once-use-batch-file –

+0

Возможный дубликат [Batch File - Remove File Extension] (http://stackoverflow.com/questions/6401928/batch-file-remove-file-extension) –

ответ

1
@ECHO OFF 
SETLOCAL 
SET "sourcedir=U:\sourcedir\t w o" 
FOR %%a IN ("%sourcedir%\*") DO (
IF NOT "%%~xa"=="" FOR %%b IN ("%%~dpna") DO (
    IF NOT "%%~xb"=="" ECHO(REN "%%~a" "%%~b" 
) 
) 

GOTO :EOF 

Вы должны были бы изменить установку sourcedir в соответствии с вашими обстоятельствами. Я использовал U:\sourcedir\t w o, чтобы доказать себе, что он будет работать с пробелами в каталоге или имени файла.

Необходимые команды REN - это всего лишь ECHO ed для целей тестирования. После того, как вы подтвердили правильность команд, измените ECHO(REN на REN, чтобы фактически переименовать файлы.

1

Если вы знаете, что все файлы в этом формате 3 части, то вы можете просто использовать:

ren *.* *. 

Это устраняет окончательное расширение. Так что возьмите «part1.prt.1» в «part1.prt», он также изменит «other.1» на «other», поэтому убедитесь, что это то, что вы хотите сделать для всех файлов.

Приятный трюк, если все расширения, которые вы хотите удалить, находятся под нормальными 3-символьными расширениями - например. как номера ревизий, которые у вас есть.

ren *.?? *. 

будет работать только на 2 символа или меньше расширений

Смежные вопросы