Estou tentando semiautomatizar a configuração dos arquivos .sav do meu Nintendo e-Reader (no entanto, o arquivo não precisa ter uma extensão .sav) usando um script em lote. A maneira não automatizada que eu usaria seria fazer o seguinte nesta ordem:
- Encontre um arquivo.
- Copie o arquivo para o mesmo diretório quee-Reader (EUA).gba(BIOS do meu Nintendo e-Reader).
- Renomeie a nova cópia do arquivo parae-Reader (EUA).saventão funciona com o programa que escolhi para usar o arquivo, que tem o nome do arquivovisualboyadvance-m.exe.
- Carregare-Reader (EUA).gbano programa, junto com o arquivo, arrastandoe-Reader (EUA).gbapara o programa.
A forma semiautomática funcionaria fazendo o seguinte nesta ordem:
- Abra o script em lote.
- Escolha um arquivo.
- O script copia o arquivo para o mesmo diretório quee-Reader (EUA).gba.
- O script renomeia a cópia do arquivo parae-Reader (EUA).sav. Este novo nome para o arquivo é fixado no script.
- O script abree-Reader (EUA).gba, junto com o arquivo.
Esses são dois recursos que desejo que meu script tenha:
- Ele pode ser executado em qualquer lugar sem ser modificado, esteja o emulador em um diretório superior ou inferior ao script. Por exemplo, um diretório superior seria como C:\Script directory\Save directory, enquanto um diretório inferior seria como C:\Save directory\Script directory.
- O arquivo pode estar em um diretório diferente do script, mas deve estar no mesmo diretório quee-Reader (EUA).gba.
Meu código permite que um arquivo seja selecionado em uma caixa de diálogo de arquivo e abree-Reader (EUA).gbano programa, mas não consigo nem copiar o arquivo, em vez disso me dando umO sistema não consegue encontrar o caminho especificado.erro. Este é aquele código que reproduz o problema de cópia do arquivo e depura o problema informando o caminho completo do arquivo que foi selecionado e também o diretório atual:
@echo off
set d="about:<input type=file id=FILE><script>FILE.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).WriteLine(FILE.value);close();resizeTo(0,0)</script>"
for /f "tokens=*delims=" %%p in ('mshta.exe %d%')do set "f=%%p
echo Selected file: "%f%
echo Current directory: "%cd%
copy "%f%" "e-Reader (USA).sav
start "" visualboyadvance-m.exe "e-Reader (USA).gba"
pause