Se você alterar a convenção de nome de arquivo, poderá gerenciar facilmente a troca de vários arquivos via RENAME com curingas.
Em vez de chamar seus arquivos foo_new.dll
, chame-os de foo.dll.new
.
Após a troca inicial, o% original foo.dll
será chamado foo.dll.old
.
Então você pode usar:
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 *.
Veja Como o comando Windows RENAME interpreta curingas? para obter uma explicação completa de como a RENAME lida com curingas.
Uma das limitações acima é que você pressupõe que você tenha um substituto para cada arquivo .dll no diretório.
Uma extensão simples usando o comando FOR pode ser usada para trocar um subconjunto dos arquivos .dll (somente aqueles para os quais * .dll.new é definido). Provavelmente é mais fácil colocar os comandos em um par de scripts em lote.
Use o seguinte arquivo em lote swapInNew.bat
para trocar os novos arquivos:
@echo off
for %%F in (*.new) do (
move "%%~nF" "~nF.old"
move "%%F" "%%~nF"
)
Agora você pode trabalhar com os arquivos de substituição conforme necessário
Por fim, use o seguinte arquivo em lote restoreOld.bat
para restaurar os arquivos antigos:
@echo off
for %%F in (*.old) do (
move "%%~nF" "%%~nF.new"
move "%%F" "%%~nF"
)