1 (изменено: dim26, 2012-02-11 19:35:53)

Тема: CMD/BAT: Переименование вложенных папок в цикле (РЕШЕНО)

Есть папки:

c:\temp\AAA\1.1.1
c:\temp\BBB\1.1.1
c:\temp\CCC\1.1.1

Нужно положить в папку TEMP некий батник, чтобы папки с цифрами переименовались, например, так:

c:\temp\AAA\9.9.9
c:\temp\BBB\9.9.9
c:\temp\CCC\9.9.9

Я помудрил с for /R, но не программист я. Недопонимаю многое (да почти ничего) в этих for. Поэтому прошу помощи у опытных товарищей.



Решение (спасибо  alexii):

В окне cmd:
for /r %i in (1.1.1) do @if exist "%i" ren "%i" "9.9.9"

Из bat-файла:
for /r %%i in (1.1.1) do @if exist "%%i" ren "%%i" "9.9.9"

2

Re: CMD/BAT: Переименование вложенных папок в цикле (РЕШЕНО)

Пока неясно по какому алгоритму должно производиться переименование.

3 (изменено: dim26, 2012-02-11 15:56:17)

Re: CMD/BAT: Переименование вложенных папок в цикле (РЕШЕНО)

alexii пишет:

Пока неясно по какому алгоритму должно производиться переименование.

Во всех папках присутствует папка с одинаковым названием 1.1.1
Нужно обойти все папки и поменять название с 1.1.1 на 9.9.9

Папки в примере (AAA, BBB, CCC) могут быть разными. Но вот вложенная папка с цифрами всегда известна.

4

Re: CMD/BAT: Переименование вложенных папок в цикле (РЕШЕНО)

dim26 пишет:

Во всех папках…

Эти «все папки» находятся внутри одной папки?

Попробуйте так:

for /r %i in (1.1.1) do @if exist "%i" ren "%i" "9.9.9"

Выполнять непосредственно из командной строки в папке, содержащей «все папки».

5

Re: CMD/BAT: Переименование вложенных папок в цикле (РЕШЕНО)

Алексей, большое СПАСИБО!!! Всё работает.


Единственное, что озадачило, что оно то работает, то нет. Потом вспомнил, что в cmd без изменения запускать надо, а если из bat-файла, то переменную надо с двумя %% писать.
Вставил в bat-файл и добавил к переменным ещё по одному %.