Вы можете использовать следующую команду в вашем пакетном файле: -
for /F "usebackq tokens=*" %%a in (`dir /ad /b %1`) do ren %1\%%a %%a%2
Это команда DOS 'for', которая выполняет итерацию по заданному набору элементов и выполняет для каждого элемента в набореданное действие.Для данного требования нам нужно сделать следующее: -
1) Принять имя папки, содержащей подпапки для переименования (в вашем примере это Рабочая область).
2) Примите строку, которую нужно добавить в конец (в вашем примере это ваше имя).
3) Перечислите имена подпапок в папке.
4) Переименуйте подобавление строки к исходному имени.
Давайте посмотрим, как эта команда выполняет это.Используемый здесь формат команды 'for': -
for /F ["options"] %variable IN (`command`) do command [command-parameters]
Команда здесь предполагает, что требуемое имя родительского каталога и добавляемая строка передаются в качестве параметров командной строки.Они представлены% 1 и% 2 (первый и второй параметры).
Чтобы дать нам возможность выполнить команду dos для оценки, нам нужно использовать параметр / F.Строка параметра: -
"usebackq tokens=*"
- usebackq указывает, что заданная в обратном порядке строка является командой для оценки. (Обратите внимание, что команда dir заключена в обратные кавычки (`))
- tokens= * означает, что каждая строка рассматривается как один токен и передается команде
Чтобы вывести подкаталоги в родительском каталоге, мы используем команду: -
dir /ad /b %1
- / ad отображает только каталоги (игнорирует файлы)
- / b отображает их в формате без вывода, то есть возвращаются только имена, а дата, время и другая информация - нет.
- % 1переменная командной строки, ссылающаяся на родительский каталог.
- %% a - это переменная, которая получает имя подкаталога на каждой итерации.Символ двойного процента необходим, поскольку мы используем его в пакетном файле, в противном случае требуется только один (например,% a)
Наконец, мы указываем действие, которое необходимо выполнить: -
ren %1\%%a %%a%2
- % 1 \ %% a создает абсолютный путь к подкаталогу
- %% a% 2 добавляет второй параметр командной строки к исходному имени
ПодробнееДля получения информации о команде введите в командной строке следующую команду: -
for /?
Другой пример использования см. Loopy loop: Способ DOS