2014-08-15 6 views
0

Я хочу переименовать все файлы внутри папки с помощью .bat. Но у меня возникает проблема, вместо того чтобы переименовывать файл, он объединяет имя.Переименование всех файлов внутри папки с использованием .bat-файла

Пример:

Прежнее имя перед запуском .bat: Test.txt

Новое имя после запуска .bat: тест newname.txt

Это код:

for /f "delims=" %%i in ('dir /b /a-d *.txt') do ren "%%~i" "%%~ni newname%%~xi" 

Я - в Windows 8, но я не знаю, является ли это актуальным.

+0

он делает это, потому что вы говорите это сделать. '%% ~ ni' - это (старое) имя файла без расширения. Проверьте второй параметр в команде 'ren'. – Stephan

+0

Посмотрите здесь; http://superuser.com/questions/728312/renaming-multiple-files-inside-a-folder-using-windows-batch-commands – Kokkie

+0

Если у вас есть 3 файла a.txt, b.txt и c.txt, следует все 3 из них будут переименованы в newname.txt - как это будет работать - вы не можете иметь три файла в папке с тем же именем – user93353

ответ

0

Ваша проблема возникает из-за того, что вы сказали ren сделать точно что это сделано.

 for /f "delims=" %%i in ('dir /b /a-d *.txt') do ren 
             "%%~i" from this name 
               "%%~ni newname%%~xi" to this name 

Новое название

"%%~ni the name part of the original filename 
     SpaceA space 
       newname the text "newname" 
         %%~xi" the extension part of the original filename 

Поскольку вы не сказали нам, что вы хотите этот файл переименован в, мы можем только догадываться.

0

Благодарим всех вас за помощь.

Ошибка была моей. Я пытался переименовать имя, чтобы позднее использовать случайное создание нового имени.

Проблема заключалась в том, я не считаю, что я все файлы в папке не может иметь такое же имя

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