Estou fazendo um script em lote que substitui um arquivo ( %ORIGINALFILE%
) em um determinado caminho ( %PROGPATH%
) por um novo arquivo ( %PATCH%
). O caminho está em uma pasta que requer o UAC, portanto, o script precisa ser executado como administrador, mas isso não parece funcionar. Sempre que eu executo meu script, uma mensagem é impressa dizendo "0 arquivo (s) foram copiados." . Consegui copiar o arquivo antes de adicionar mensagens de erro. Por que, depois de adicionar minhas mensagens, meu script não copia mais meu arquivo de patch? Aqui está a versão final do meu script:
@ECHO OFF
TITLE Patch
MODE con cols=56 lines=5
IF EXIST "%PROGPATH%\%ORIGINALFILE%.bak" GOTO :ERROR
:RENAME
CD "%PROGPATH%\"
RENAME "%ORIGINALFILE%" "%ORIGINALFILE%.bak"
XCOPY "%PATCH%" "%PROGPATH%\%ORIGINALFILE%"
ECHO.
ECHO The patch was successful.
ECHO.
PAUSE
GOTO :END
:ERROR
ECHO.
ECHO You've already installed the patch.
ECHO.
PAUSE
:END