Ищете простой пакетный скрипт, который изменяет имя файла - PullRequest
2 голосов
/ 26 октября 2011

У меня есть список файлов в папке, которые заканчиваются на .swf.

Я хочу изменить все эти файлы с X.swf на X<some number>.swf.

Как я могу это сделать?

Ответы [ 3 ]

3 голосов
/ 26 октября 2011

Этот небольшой скрипт изменит все *.swf файлы на эквивалентные *_42.swf файлы.

@setlocal enableextensions enabledelayedexpansion
@echo off
for /f %%a in ('dir /b *.swf') do (
    set fspec=%%a
    set newfspec=!fspec:~0,-4!_42.swf
    echo ren !fspec! !newfspec!
)
endlocal

На самом деле, в его нынешнем виде он просто отображает команды, которые он хочет выполнить.Как только вы убедитесь, что они верны, вы можете просто удалить echo из этой строки переименования.

Это работает с помощью for /f, чтобы получить список всех SWF-файлов, а затем с помощью манипуляции со строками.

  • удалить последние четыре символа (расширение .swf);затем
  • добавьте новое расширение _42.swf в конец.

И, пожалуйста, сначала убедитесь, что вы их резервировали: -)

2 голосов
/ 04 ноября 2011

Предполагая, что <X> в вашем описании должно быть постоянным, и вам явно не требуется пакетный скрипт для решения вашей проблемы, вы можете использовать Windows Explorer, как упоминалось в статье Microsoft под названием " Переименовать файл ».

Вот выдержка из этой статьи:

"Вы также можете переименовать несколько файлов одновременно, что полезно для группировки связанных элементов. Для этого выберите файлы [затем нажмите F2]. Введите одно имя, а затем каждый из файлов будет сохранен с новое имя и другой порядковый номер в конце (например, переименованный файл (2), переименованный файл (3) и т. д.). "

2 голосов
/ 26 октября 2011

Вы можете использовать следующую однострочную строку непосредственно из командной строки:

FOR %F IN (*.swf) DO RENAME "%F" "%~nF<i>123</i>.*"

, где 123 обозначает ваш номер.

В качестве альтернативыВы можете создать командный файл и воспользоваться его способностью принимать параметры.Используйте следующий скрипт:

@ECHO OFF
SET "suffix=%~1"
FOR %%F IN (*.swf) DO RENAME "%%F" "%%~nF%suffix%.*"

Теперь, если имя пакета renamer.bat, вы можете вызвать его следующим образом:

renamer.bat 2011

, и оно добавит 2011 к именикаждого .swf файла в текущем каталоге.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...