Programing

Windows .cmd 파일 또는 배치 파일의 경로에 공백이있는 경로 변수 설정

lottogame 2020. 8. 21. 08:25
반응형

Windows .cmd 파일 또는 배치 파일의 경로에 공백이있는 경로 변수 설정


저는 스크립트 작성이 처음이고이 작업을 수행 할 수 없습니다. 공간이없는 경로로 파일을 옮길 수 있지만 가능하면 공간과 함께 작동하고 싶습니다.

.cmd 파일이있는 폴더에 여러 Office 업데이트를 추출하고 싶습니다. 배치 파일을 모든 컴퓨터에서 사용할 수 있도록하기 위해 다른 컴퓨터에서 실행하기 위해 한 곳에서만 변경하면되는 경로 변수를 설정했습니다. 문제는 경로에 공백이 있다는 것입니다. 정의에서 경로를 따옴표로 묶으면 cmd.exe는 파일 이름을 추가하고 전환하기 전에 경로를 따옴표로 묶고 배치가 "명령 줄 구문 오류"와 함께 실패합니다. 따옴표가 없으면 "내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다."와 함께 실패합니다.

테스트를 위해 도움말 스위치를 사용할 수있을 때까지 사용하고 있습니다. 8.3 파일 / 폴더 이름 (예 : My Documents as MyDocu ~ 1)을 사용하여 할 수 있지만 다른 방법으로 할 수 있습니까?


다음과 같이 시도하십시오.

SET MY_PATH=C:\Folder with a space

"%MY_PATH%\MyProgram.exe" /switch1 /switch2

나는 사용한다

set "VAR_NAME=<String With Spaces>"

경로를 업데이트 할 때 :

set "PATH=%UTIL_DIR%;%PATH%"

여기에는 두 가지 옵션이 있습니다. 먼저, 경로를 인용하지 않고 저장하고 나중에 인용 할 수 있습니다.

set MyPath=C:\Program Files\Foo
"%MyPath%\foo with spaces.exe" something

사용할 수있는 또 다른 옵션은 문자열 인용 해제를위한 서브 루틴입니다 (그러나이 경우에는 인용문을 추가하고 제거하고 이점없이 다시 추가하기 때문에 실제로는별로 좋은 생각이 아닙니다).

set MyPath="C:\Program Files\Foo"
call :foo %MyPath%
goto :eof

:foo
"%~1\foo.exe"
goto :eof

%~1인수를 큰 따옴표를 제거합니다. 이것은 따옴표로 묶인 폴더 이름을 전달할 때 유용하지만 이전에 말했듯이이 특별한 경우에는 최선의 생각이 아닙니다. :-)


이 시도;

  1. 아래와 같이 변수를 만듭니다.

    SET "SolutionDir=C:\Test projects\Automation tests\bin\Debug"**
    
  2. 그런 다음 경로를 변수로 바꿉니다. 시작과 끝에 따옴표를 추가하십시오.

    vstest.console.exe "%SolutionDir%\Automation.Specs.dll"
    

.bat 파일을 만들 때 항상 경로를 큰 따옴표로 묶습니다. (화면을 닫지 않도록 PAUSE를 추가했습니다.)

예를 들면 :

"C:\Program Files\PageTech\PCLReader64_131\PCLReader64.exe"
PAUSE

이를 수행하는 적절한 방법은 다음과 같습니다.

@ECHO off
SET MY_PATH=M:\Dir\^
With Spaces\Sub Folder^
\Dir\Folder
:: calls M:\Dir\With Spaces\Sub Folder\Dir\Folder\hello.bat
CALL "%MY_PATH%\hello.bat"
pause

이 문제를 해결하는 가장 쉬운 방법은 폴더 이름을 따옴표로 묶는 것입니다.

(cd\New Folder\...) --> (cd\"New Folder"\...)

이것이 도움이되기를 바랍니다.


영구 경로를 저장해야하는 경우 (cmd를 다시 시작할 때 경로가 변경되지 않음)

  1. 관리자 권한으로 명령 프롬프트 실행 (cmd.exe를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행 선택)

  2. cmd에서 setx path "%path%;your new path"다음을 입력하십시오.

  3. 경로를 입력하고 Enter 키를 눌러 경로가 올바르게 선택되었는지 확인하십시오.

참고 URL : https://stackoverflow.com/questions/1851012/set-a-path-variable-with-spaces-in-the-path-in-a-windows-cmd-file-or-batch-file

반응형