Если вы измените соглашение об именах файлов, то вы можете легко управлять заменой нескольких файлов через RENAME с подстановочными знаками.
Вместо того, чтобы называть ваши файлы foo_new.dll
, называйте их foo.dll.new
.
После первоначального обмена исходный foo.dll
будет называться foo.dll.old
.
Тогда вы можете использовать:
rem First swap in the new files
rem The following command appends .old to all files with .dll extension (foo.dll -> foo.dll.old)
ren *.dll *?.old
rem The following command removes all .new extensions (foo.dll.new -> foo.dll)
ren *.new *.
rem Now you can work with the new replacements
rem Finally swap out the new files and restore the old ones
rem Add .new to the dll files (foo.dll -> foo.dll.new)
ren *.dll *?.new
rem Remove .old extensions (foo.dll.old -> foo.dll)
ren *.old *.
См. Как команда Windows RENAME интерпретирует подстановочные знаки? для полного объяснения того, как RENAME обрабатывает групповые символы.
Одним из ограничений вышеизложенного является то, что предполагается, что у вас есть замена для каждого DLL-файла в вашем каталоге.
Простое расширение с помощью команды FOR можно использовать для замены подмножества DLL-файлов (только тех, для которых определен * .dll.new). Вероятно, проще всего поместить команды в пару пакетных сценариев.
Используйте следующий пакетный файл swapInNew.bat
для замены новых файлов:
@echo off
for %%F in (*.new) do (
move "%%~nF" "~nF.old"
move "%%F" "%%~nF"
)
Теперь вы можете работать с файлами замены по мере необходимости
Наконец, используйте следующий пакетный файл restoreOld.bat
для восстановления старых файлов:
@echo off
for %%F in (*.old) do (
move "%%~nF" "%%~nF.new"
move "%%F" "%%~nF"
)