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

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

그러나 이것은 필요하지 않습니다. 대부분의 경우 전체 경로에 따옴표를 사용할 수 있습니다.

  Windows 10에서 타일 데이터베이스가 손상된 오류를 수정하는 방법

이 솔루션은 기존 명령 프롬프트(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 환경에서만 작동합니다. 명령 프롬프트에서 캐럿 문자를 사용해야 합니다.

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

  Windows 10의 Microsoft Edge에서 책갈피를 내보내는 방법