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

Рейтинг: 0Ответов: 1Опубликовано: 26.07.2023

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

---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, но не могу понять, как получить дочернюю папку.

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

Ответы

▲ 0

Чтобы узнать имя папки dir:

for /f %%x in ('dir /ad /b main\ru') do @set dir_name=%%x
echo %dir_name%

Чтобы заменить строку в файле, нужен нормальный скриптовый язык, а не тупая запускалка файлов, которой является cmd