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
인수를 큰 따옴표를 제거합니다. 이것은 따옴표로 묶인 폴더 이름을 전달할 때 유용하지만 이전에 말했듯이이 특별한 경우에는 최선의 생각이 아닙니다. :-)
이 시도;
아래와 같이 변수를 만듭니다.
SET "SolutionDir=C:\Test projects\Automation tests\bin\Debug"**
그런 다음 경로를 변수로 바꿉니다. 시작과 끝에 따옴표를 추가하십시오.
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를 다시 시작할 때 경로가 변경되지 않음)
관리자 권한으로 명령 프롬프트 실행 (cmd.exe를 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행 선택)
cmd에서
setx path "%path%;your new path"
다음을 입력하십시오.경로를 입력하고 Enter 키를 눌러 경로가 올바르게 선택되었는지 확인하십시오.
'Programing' 카테고리의 다른 글
SQL Plus에서 실행되는 SQL 스크립트에서 앰퍼샌드를 무시하려면 어떻게합니까? (0) | 2020.08.21 |
---|---|
IIS7은 Response.StatusCode를 설정할 때 customErrors를 무시합니까? (0) | 2020.08.21 |
EGit 및 GitHub의 '인증 실패'오류 (0) | 2020.08.21 |
도메인 특정 언어는 무엇입니까? (0) | 2020.08.21 |
Java에서 특정 디렉토리의 파일을 반복하는 방법은 무엇입니까? (0) | 2020.08.21 |