Переименование папок и файлов в системе Windows рекурсивно - PullRequest
0 голосов
/ 13 ноября 2011

У меня следующая структура папок:

Top Folder
    -> SubFolder1
        -> MyFolder_Latest
        -> MyFile_Latest.txt
    -> SubFolder2
        -> MyFolder_Latest
        -> MyFile_Latest.txt
    -> SubFolder3
        -> MyFolder_Latest
        -> MyFile_Latest.txt

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

Top Folder
    -> SubFolder1
        -> myfolder
        -> myfile.txt
    -> SubFolder2
        -> myfolder
        -> myfile.txt
    -> SubFolder3
        -> myfolder
        -> myfile.txt

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

Кто-нибудь имеет какие-либо идеи о том, как добиться вышеупомянутого в Windows?Моя система не позволяет устанавливать UNIX, и я не могу скопировать эти файлы в систему UNIX, поскольку наша сеть в настоящее время не предоставляет разрешения SCP или FTP ни для одного из блоков UNIX: - (*

Кроме того, если кто-то имеетподходящее решение в UNIX, я могу попробовать скопировать папки на DVD и попробовать запустить команды в окне UNIX: -)

1 Ответ

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

Показанная структура папок не требует рекурсивности.Просто прокрутите все папки на первом уровне структуры и переименуйте их соответствующим образом.

См. HELP FOR

и попробуйте начать работу

@echo off
set TopFolder="c:\temp\Top Folder"
pushd %TopFolder%
for /d %%a in (*.*) do (
  if exist "%%~fa\MyFolder_Latest" echo REN "%%~fa\MyFolder_Latest" myfolder
  if exist "%%~fa\MyFile_Latest.txt" echo REN "%%~fa\MyFile_Latest.txt" myfile.txt
)
popd

после тщательного тестирования удалите команду ECHO.

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