Win 7 - 배치 문제, 폴더 이름의 공백을 좋아하지 않습니다.


0

당신은 저를 용서해야합니다 (또는 아닙니다) 제 배치 프로그래밍에 관한 지식은 상당히 초보적입니다.

게임을 시작하고 시스템 변수를 변경하여 게임 폴더 안에 저장된 게임을 이동시키는 데 필요한 몇 가지 배치 파일을 만들었습니다. 기본적으로 이식 가능합니다.

경로에 공백이없는 폴더 내에있을 때 작동합니다. 그러나 말할 때, 프로그램 파일 (x86) 그것은 넘어집니다.

상대 부모 경로를 얻기 위해 사용하는 코드는 다음과 같습니다.

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

이것은 중요한 부분이며, 스크립트의 다른 모든 것들은 이것에 의존합니다.

나머지는 다음과 같습니다.

: 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\1.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"

스크립팅에서 공백을 처리 할 수 ​​있도록이 코드를 수정할 수 있습니까? 나는 템플릿을 설정하여 아무 것도 영향을 미치지 않도록 관리했지만 패스의이 부분은 떨어지는 부분입니다.

APPPATH 변수를 사용하여 파일이 컴퓨터에있는 모든 경로를 상대 경로로 출력합니다.

도와 주셔서 감사합니다!


귀하의 질문에 OS 태그를 추가하여 사람들이 어떤 OS와 관련이 있는지 알도록하십시오.
Julian Knight

일괄 적으로 주석을 쓰는 방법은 REM을 사용하거나 ::콜론 작업을하는 것이지만 실제로 생각한 것은 아닙니다. 실제로 레이블을 만들었습니다. 그래서 당신은 당신이 만든 레이블로 이동할 수 있습니다! 그것을 증명하기 위해,이 배치 파일 pastebin.com/raw.php?i=cJ0P7JSC
barlop을

고맙습니다 Barlop, 나는 같은 목적으로 다른 코드에서 그것을 보았습니다. 그래서 나는 정보를 주셔서 감사합니다.
Ctrlaltdenied

답변:


1

사람들을 신경 쓰지 마라. 대답은 믿을 수 없을 정도로 간단했다. 나는 머리 위로 때려 눕힌다.

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

에:

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

(따옴표로 경로를 캡슐화)

문제 해결 (가!)


자신의 대답을 수락하는 것을 잊지 마십시오 - 나는 당신이 24 시간을 기다려야한다고 생각합니다.
줄리안 나이트
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.