Win 7 - Problema de lote, não gosta de espaços em nomes de pastas

0

Você terá que me perdoar (ou não) meu conhecimento de programação em lote é bastante rudimentar.

Eu criei alguns arquivos em lote para ajudar a lançar um jogo, altere uma variável do sistema (para mover os jogos salvos dentro da pasta do jogo) basicamente para torná-lo portátil.

Funciona quando reside em pastas sem espaços no caminho. No entanto, quando colocar em dizer, Program Files (x86) cai.

Aqui está o código que estou usando para obter o caminho pai relativo.

for %%B in (%~dp0\.) do set APPPATH=%%~dpB

Esta é a parte importante, tudo o mais no script depende disso.

Aqui está o resto:

: Get path of parent folder (relative)
for %%B in (%~dp0\.) do set APPPATH=%%~dpB
set APPPATH2=%APPPATH%Microsoft Games\Freelancer\

: Modify path of Freelancer in the registry to point to the portable install
REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Microsoft Games\Freelancer.0" /v AppPath /t REG_SZ /d "%APPPATH2%\" /f

: Set path for Saved Games
Set USERPROFILE=%APPPATH%

: Start Freelancer up
START "" "%APPPATH%Microsoft Games\Freelancer\EXE\Freelancer.exe"

É possível que este código seja modificado para poder manipular espaços no script? Consegui configurar meu modelo para que ele não afete nada, mas essa parte do caminho é onde ele está caindo.

Eu uso a variável APPPATH para gerar um caminho completo em relação ao local onde o arquivo está em um computador.

Obrigado pela ajuda!

    
por Ctrlaltdenied 04.06.2015 / 19:19

1 resposta

1

Não importa o pessoal, a resposta foi enganosamente simples, às vezes eu me dou um tapa na cabeça.

: Get path of parent folder (relative)
for %%B in (%~dp0\.) do set APPPATH=%%~dpB

Para:

: Get path of parent folder (relative)
for %%B in ("%~dp0\.") do set APPPATH=%%~dpB

(encapsule o caminho com aspas)

Problema resolvido (Gah!)

    
por 04.06.2015 / 20:14