Estou fazendo um script em lote que recupera um arquivo de um local, copia-o para outro e o renomeia para autoexec.cfg
para corrigir um problema em um jogo. O único conflito em potencial que enfrento é se um usuário já criou um arquivo autoexec.cfg
. Então, eu preciso fazer meu script analisar as informações de dentro do arquivo de destino e inseri-lo no topo de um arquivo autoexec.cfg
existente, se estiver presente. Eu sei como substituir texto usando findstr
, mas eu preciso de algo como inserir texto em um local específico usando posicionamento de linha e coluna. Aqui está o meu script atual:
IF NOT EXIST "%LOCALAPPDATA%\ElDewrito\keys.cfg" goto :NOKEYS
IF EXIST "AutoExec.cfg" goto :HASKEYS
IF EXIST "%LOCALAPPDATA%\ElDewrito\keys.cfg" goto :EXECUTE
:NOKEYS
SET msgboxTitle=Error
SET msgboxBody=You don't have any keys to import!
SET tmpmsgbox=%TEMP%\Message.vbs
IF EXIST "%tmpmsgbox%" DEL /F /Q "%tmpmsgbox%"
ECHO msgbox "%msgboxBody%",0,"%msgboxTitle%">"%tmpmsgbox%"
WSCRIPT "%tmpmsgbox%"
goto :END
:HASKEYS
SET msgboxTitle=Error
SET msgboxBody=You've already imported your keys.
SET tmpmsgbox=%TEMP%\Message.vbs
IF EXIST "%tmpmsgbox%" DEL /F /Q "%tmpmsgbox%"
ECHO msgbox "%msgboxBody%",0,"%msgboxTitle%">"%tmpmsgbox%"
WSCRIPT "%tmpmsgbox%"
goto :END
:EXECUTE
COPY "%LOCALAPPDATA%\ElDewrito\keys.cfg" ".\AutoExec.cfg"
goto :SUCCESS
:SUCCESS
SET msgboxTitle=Import
SET msgboxBody=Keys successfully imported!
SET tmpmsgbox=%TEMP%\Message.vbs
IF EXIST "%tmpmsgbox%" DEL /F /Q "%tmpmsgbox%"
ECHO msgbox "%msgboxBody%",0,"%msgboxTitle%">"%tmpmsgbox%"
WSCRIPT "%tmpmsgbox%"
goto :END
:END
É possível analisar / copiar cadeias de um documento baseado em texto e colá-lo em outro em uma posição específica para evitar a quebra da estrutura do segundo documento? Estou ciente de que as trocas não são para resolver os problemas, eu só preciso de uma idéia de se isso é viável e como implementá-lo.
Tags windows batch-file