2015-06-11 3 views
3

Я нашел здесь этот скрипт и изменил его. Он работает только для 1 файла одновременно, а не для нескольких файлов. Как я могу заставить этот скрипт переименовать несколько файлов в указанном каталоге?переименовать несколько файлов со сценарием

@echo off 
setlocal enabledelayedexpansion 
set X=64 
set Y=4 
set FOLDER_PATH=c:\temp\renamefiles\files 
pushd %FOLDER_PATH% 
for %%f in (*) do if %%f neq %~nx0 (
    set "filename=%%~nf" 
    set "filename=!filename:~%X%,-%Y%!" 
    ren "%%f" "!filename!%%~xf" 
) 
popd  
+1

Я не понимаю, что вы имеете в виду - сценарий переименовывает ВСЕ файлы в FOLDER_PATH (но не файл с именем скрипта - странно!). И это независимо от того, содержит ли имя файла заменяемое письмо или нет. Я бы написал новый скрипт с нуля, который сначала фильтрует файлы, которые нужно переименовать, а затем переименовывает только те. – user1016274

+0

Вы пробовали PowerShell? 'gci" c: \ temp \ renamefiles \ files \ "| ren {$ _. Name.SubString (64, $ _. Name.Length-60)} ' – TessellatingHeckler

+0

Оказывается, скрипт отлично работает. Я не обращал внимания на 2 файла, которые я установил в папку для тестирования, у них получилось одно и то же имя. Виноват. Тем не менее, мне очень нравится сценарий PowerShell, бум! Теперь у меня есть 2 разных способа переименования файлов! –

ответ

0

Я не знаю, что вы имеете в виду, но это работает для меня:

ren "path\to\your\folder\*.*" "foo.*" 

Если вы выполняете эту команду, каждый файл, независимо от того, если есть .txt, .png , .foo, .bar, .. файлы.

Каждый файл в этой папке будет переименован в «foo». Но если есть, например, четыре файла .png, будет только один .png-файл, падающий foo.png, потому что другие не могут переименовываться, когда есть другие файлы с точно таким же именем уже там.

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