Windows 명령 줄에서 파일 경로의 공백을 이스케이프하는 방법

0
2472

Windows 10의 명령 프롬프트 창

Windows 명령 프롬프트 및 PowerShell과 같은 명령 줄 환경에서는 공백을 사용하여 명령과 인수를 구분하지만 파일 및 폴더 이름에도 공백이 포함될 수 있습니다. 내부에 공백이있는 파일 경로를 지정하려면 “이스케이프”해야합니다.

명령 줄 101 : 공간을 탈출해야하는 이유

캐릭터를 “탈출”하면 의미가 바뀝니다. 예를 들어 공백을 이스케이프하면 쉘이 명령 줄 인수를 구분하는 특수 문자가 아닌 표준 공백 문자처럼 처리합니다.

예를 들어 내용을 보려는 텍스트 파일이 있다고 가정 해 보겠습니다. type 명령을 사용하여 수행 할 수 있습니다. 텍스트 파일이 C:TestFile.txt, 명령 프롬프트의 다음 명령은 해당 내용을 표시합니다.

type C:TestFile.txt

큰. 이제 동일한 파일이 C:Test FolderTest File.txt? 아래 명령을 실행하려고하면 작동하지 않습니다. 파일 경로의 공백이 방해가됩니다.

type C:Test FolderTest File.txt

명령 줄에서 다음과 같은 파일을 찾으려고한다고 생각합니다. C:Test “지정된 경로를 찾을 수 없습니다”라고 말합니다.

공백을 이스케이프하지 않을 때 명령 프롬프트 오류

Windows에서 공백을 탈출하는 세 가지 방법

Windows에서 파일 경로를 이스케이프 할 수있는 세 가지 방법이 있습니다.

  • 경로 (또는 그 일부)를 큰 따옴표 (”)로 묶습니다.
  • 각 공백 앞에 캐럿 문자 (^)를 추가합니다. (이것은 명령 프롬프트 / CMD에서만 작동하며 모든 명령에서 작동하지 않는 것 같습니다.)
  • 각 공백 앞에 억음 악센트 문자 (`)를 추가합니다. (이것은 PowerShell에서만 작동하지만 항상 작동합니다.)

각 방법을 사용하는 방법을 보여 드리겠습니다.

경로를 따옴표 (”)로 묶습니다.

Windows에서 파일 경로를 올바르게 처리하도록하는 표준 방법은 파일 경로를 큰 따옴표 (”) 문자로 묶는 것입니다. 예를 들어 위의 샘플 명령을 사용하여 대신 다음을 실행합니다.

type "C:Test FolderTest File.txt"

원하는 경우 실제로 경로의 일부를 따옴표로 묶을 수 있습니다. 예를 들어 해당 폴더에 File.txt라는 파일이 있다고 가정 해 보겠습니다. 다음을 실행할 수 있습니다.

type C:"Test Folder"File.txt

그러나 그럴 필요는 없습니다. 대부분의 경우 전체 경로에 따옴표 만 사용할 수 있습니다.

이 솔루션은 기존의 명령 프롬프트 (CMD) 환경과 Windows PowerShell 모두에서 작동합니다.

명령 프롬프트에서 큰 따옴표로 공백 묶기

때때로 : 캐럿 문자를 사용하여 공백을 이스케이프 (^)

명령 프롬프트에서 캐럿 문자 (^)를 사용하면 이론적으로 공백을 이스케이프 할 수 있습니다. 파일 이름의 각 공백 앞에 추가하십시오. (이 문자는 키보드의 숫자 행에서 찾을 수 있습니다. 캐럿 문자를 입력하려면 Shift + 6을 누르십시오.)

문제는 다음과 같습니다. 이것이 작동해야하고 때로는 작동하지만 항상 작동하지는 않습니다. 명령 프롬프트에서이 문자를 처리하는 것이 이상합니다.

예를 들어 샘플 명령을 사용하면 다음을 실행할 수 있지만 작동하지 않습니다.

type C:Test^ FolderTest^ File.txt

명령 프롬프트의 캐럿 공간 이스케이프 오류

반면에 명령 프롬프트에 경로를 입력하여 파일을 직접 열면 캐럿 문자가 공백을 제대로 이스케이프하는 것을 볼 수 있습니다.

C:Test^ FolderTest^ File.txt

명령 프롬프트에서 작동하는 캐럿 공간 이스케이프

그럼 언제 작동합니까? 우리 연구에 따르면 일부 응용 프로그램에서는 작동하고 다른 응용 프로그램에서는 작동하지 않는 것 같습니다. 마일리지는 사용중인 명령에 따라 다를 수 있습니다. 명령 프롬프트에서이 문자를 처리하는 것이 이상합니다. 관심이 있다면 어떤 명령을 사용하든 시도해보십시오. 작동 할 수도 있고 작동하지 않을 수도 있습니다.

일관성을 위해 명령 프롬프트에서 큰 따옴표를 사용하거나 PowerShell로 전환하고 아래의 억음 악센트 방법을 사용하는 것이 좋습니다.

PowerShell : 저음 악센트 문자 (`) 사용

PowerShell은 억음 악센트 (`) 문자를 이스케이프 문자로 사용합니다. 파일 이름의 각 공백 앞에 추가하십시오. (이 문자는 Tab 키 위와 키보드의 Esc 키 아래에 있습니다.)

type C:Test` FolderTest` File.txt

각 억음 악센트 문자는 PowerShell에 다음 문자를 이스케이프하도록 지시합니다.

이것은 PowerShell 환경에서만 작동합니다. 명령 프롬프트에서 캐럿 문자를 사용해야합니다.

PowerShell에서 억음 악센트로 공백 탈출


Linux 및 macOS와 같은 UNIX와 유사한 운영 체제에 익숙하다면 공백 앞에 백 슬래시 () 문자를 사용하여 이스케이프하는 데 익숙 할 수 있습니다. Windows는 일반 파일 경로에 이것을 사용하므로 작동하지 않습니다.-캐럿 (^) 및 억음 악센트 (`) 문자는 사용중인 명령 줄 셸에 따라 Windows 버전의 백 슬래시입니다.