@ymfront

Как получить дочернюю директорию через cmd заменить подстроку в файле в цикле?

Есть папка с подпапками:

---main
   --- ru
      --- dir
          ---index.html


Следующий скрипт (geo.cmd) копирует директории RU и переименовывает нужные (ag, am и т.д.):

@echo off
chcp 65001
for %%l in (ag am) do (
    xcopy /E /I /Q /Y ru %%l
)


Мне нужно в цикле переименовать файл index.html в index_ag.html, index_am.html и так далее. Для этого использую строку - ren %%l\dir\index.html index_%%l.html

@echo off
chcp 65001
for %%l in (ag am) do (
    xcopy /E /I /Q /Y ru %%l
    ren %%l\dir\index.html index_%%l.html
)


Но проблема в том, что папка dir может называться по разному. Поэтому мне нужно получить название дочерней папки (dir), и уже потом переименовывать файл. Как мне можно получить название дочерней папки? Пытаюсь использовать команду dir, но не могу понять, как получить дочернюю папку.

----------------------------

UPDATE:

В итоге получение дочерней директории сделал так. Правильное ли это решение?

@echo off
chcp 65001

for /f "delims=" %%a in ('dir ru /b') do (
    echo %%a
    set dir=%%a
)

for %%l in (ag am) do (
    xcopy /E /I /Q /Y ru %%l
    ren %%l\%dir%\index.html index_%%l.html
)


----------------------------

Также в каждом файле index.html нужно заменить строку <html lang="ru"> на строки <html lang="en"> для AG и <html lang="hy"> для AM. Какая команда используется для замены текста?
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы