명령 프롬프트에서 공백을 어떻게 사용합니까?


192

Windows 명령 행에서 공백을 어떻게 사용합니까?

cmd /C C:\Program Files (x86)\WinRar\Rar.exe a D:\Hello 2\File.rar D:\Hello 2\*.*

답변:


261

이 경우 작은 따옴표는 사용하지 않습니다. 각 경로 주위에 따옴표를 추가하고 전체 명령을 따옴표로 묶어야합니다.

cmd /C ""C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*""

4
예, 모든 경로는 따옴표로 묶어야합니다. 또한 전체 명령을 다른 따옴표로 다시 묶어야했습니다. 이제 작동합니다! 감사!
일어나

@sakra도 나를 위해 작동하지 않습니다. ""C : \ 프로그램 파일 \ WinRar를 \ WinRAR.exe "는"C : \ VERI tabani yedekler \ Dedicated_Pokemon_Pets_DB_Backup_2014_7_10_7_2.rar "-ri1 -mt2 -m5"C : \ VERI tabani yedekler \ Dedicated_Pokemon_Pets_DB_Backup_2014_7_10_7_2.bak ""
MonsterMMORPG

3
@MonsterMMORPG – 접두사cmd /C
sakra

@sakra 이름이 공백 인 파일을 제외하고 싶습니다 CEEMEA & LATAM.doc. 어떻게해야합니까? "C:\Program Files\WinRAR\rar" a -agmmddyy -x*CEEMEA & LATAM.doc ".rar"
Ibn e Ashiq

"C : \ Program Files (x86) \ WinRar \ Rar.exe"a "D : \ Hello 2 \ File.rar" "D : \ Hello 2 \"
user1620090

78

경로에 공백 문자를 사용하는 경우 (예 xyz: 위치가 앱 인 앱에 액세스 해야하는 경우)를 알아 냈습니다 .

C:\Program Files\ab cd\xyz.exe

Windows cmd 프롬프트에서 이것을 실행하려면

C:\"Program Files"\"ab cd"\xyz.exe

또는

"C:\Program Files\ab cd\xyz.exe"

나는 이것을 시도했지만 내 경우에는 작동하지 않는 것 같습니다 : python ""C : \ Program Files (x86) \ Jenkins \ workspace \ Map Checker Unit Test \ sqs-poller \ node_modules \ map-checker \ python \ unit_test.py "-d"C : \ Program Files (x86) \ Jenkins \ workspace \ Map Checker 단위 테스트 \ MAP_CHECK_TMP \ #Test Case "-o"C : \ Program Files (x86) \ Jenkins \ workspace \ Map Checker 단위 테스트 \ MAP_CHECK_TMP \ # 테스트 케이스 "-o2"C : \ Program Files (x86) \ Jenkins \ workspace \ Map Checker Unit Test \ MAP_CHECK_TMP \ #Test Case \ testcase_results.csv ""-l "C : \ Program Files (x86) \ Jenkins \ workspace \ Map Checker Unit Test \ MAP_CHECK_TMP "-restore"도움이
되셨

22

큰 따옴표로 문제가 해결되지 않으면 예를 들어보십시오.

dir /X ~1 c:\

대체 파일 또는 디렉토리 이름 목록을 가져옵니다. 출력 예 :

11/09/2014 12:54 AM             8,065  DEFAUL~1.XML Default Desktop Policy.xml
06/12/2014  03:49 PM    <DIR>          PROGRA~1     Program Files 
10/12/2014  12:46 AM    <DIR>          PROGRA~2     Program Files (x86)

이제 명령에서 5 번째 열에 짧은 8 자 파일 또는 폴더 이름 (예 : PROGRA ~ 1 또는 DEFAUL ~ 1.XML)을 사용하십시오. 예를 들어 :

set JAVA_HOME=c:\PROGRA~1\Java\jdk1.6.0_45 

이것은 쉬운 방법입니다. mucky-muck과 관련된 이중 겹 따옴표는 없습니다.
Dave Anderson

짧은 8.3은 NTFS 옵션이며 비활성화 할 수 있다는 것을 알고 있습니까? 그것에 의존하지 마십시오.
Zan Lynx

10

공백이 포함 된 경로를 큰 따옴표로 묶으십시오.

cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"

그렇다면 문제는 Rar.exe실제로 인수 구문이 무엇인지에 있습니다 . 잘못 사용했을 수 있습니다. 어쩌면 시도 "D:\Hello 2\"하거나 "D:\Hello 2"대신 "D:\Hello 2\*.*"?
JAB

cmd / C "C : \ Program Files (x86) \ WinRar \ Rar.exe"D : \ Hello \ File.rar D : \ Hello *. * (공백이없고 작동 함) 그러나 방법 공백을 다루는가?
faressoft

@JAB 당신은 같은 공간에 파일을 갖는 이름을 제외해야하는 경우 CEEMEA & LATAM.doc. 무엇이되어야합니까? "C:\Program Files\WinRAR\rar" a -x*CEEMEA & LATAM.doc ".rar"
Ibn e Ashiq

10

큰 따옴표로 복잡한 경로 이름을 제공하고 파일 끝에 파일 확장자를 포함 시키십시오.

파일의 경우 :

call "C:\example file.exe"

디렉토리의 경우 :

cd "C:\Users\User Name\New Folder"

CMD는 큰 따옴표 ( "xyz")가있는 텍스트를 하나의 문자열로 해석하고 작은 따옴표 ( 'xyz') 내의 텍스트를 명령으로 해석합니다. 예를 들면 다음과 같습니다.

( 'dir / b / s * .txt')의 FOR %% A는 ( 'command')

( 'dir / b / s * .txt')에서 FOR %% A 수행 ( "%% A"에코)

한 가지 좋은 점은 cmd는 bash와 같이 대소 문자를 구분하지 않습니다. "New fiLE.txt"와 "new file.TXT"는 비슷합니다.

* 참고 : 위의 경우 %% A 변수는 대소 문자를 구분합니다 (%% A는 %% a와 같지 않음).


파일 이름에 밑줄이 포함됩니까? 'file_name'vs 'file name'과 같이
SqueakyBeak

7

나는 조금 더 읽기 쉽도록 ()유효한 명령을 묶는 것을 선호합니다 batch.

cmd /C ("C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*")

3
set "CMD=C:\Program Files (x86)\PDFtk\bin\pdftk"
echo cmd /K ""%CMD%" %D% output trimmed.pdf"
start cmd /K ""%CMD%" %D% output trimmed.pdf"

이것은 배치 파일에서 나를 위해 일했습니다.


2

따옴표를 추가하기 만하면됩니다.

예 : "C : \ Users \ 사용자 이름"

그것이 해결되기를 바랍니다!


7
같은 일이 벌써 6 십 번 언급되었습니다. 이로 인해 어떤 추가 가치가 있습니까?
JJJ


0

Commend Prompt (공백 프롬프트)의 공백 (VBA 셸 명령 코드 줄)

VBA를 통해 자동화 할 때 명령 창에서 내용을 텍스트 파일로 가져올 때 명령 프롬프트에 공백이되는 매우 비슷한 문제가 발생했습니다. 이 스레드는 나에게 해결책을 얻지 못한 길을 따라 잡은 많은 사람들 중 하나였습니다.

그래서 이것은 비슷한 문제를 가진 다른 사람들을 도울 수 있습니다 : 따옴표가있는 구문은 항상 올바르게 이해하기 어렵 기 때문에 특정 예제를 보여주는 것이 항상 유용하다고 생각합니다. 셸을 통해 VBA에서 명령 프롬프트를 사용하는 추가 문제는 문제가 발생했을 때 코드 줄이 종종 오류가 발생하지 않는다는 것입니다. 실제로 검은 색 권장 창이 깜박이면 무언가 잘못되었다고 생각하게됩니다.

예를 들어 ...와 같이 텍스트 파일이있는 폴더가 있다고 가정 해보십시오.

C : \ Alans 폴더 \ test1.txt ( https://imgur.com/FELSdB6 )

폴더 이름에 공백이 있으면 문제가 발생합니다.

폴더 AlansFolder가 존재한다고 가정하면 이와 같은 것이 작동합니다.

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > C:\AlansFolder\test1.txt"""
End Sub

작동하지 않습니다. (오류가 아닙니다).

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > C:\Alans Folder\test1.txt"""
End Sub

경로 주위에 따옴표 쌍을 포함하면 작동합니다

Sub ShellBlackCommandPromptWindowAutomatingCopyingWindowContent()
 Shell "cmd.exe /c ""ipconfig /all > ""C:\Alans Folder\test1.txt"""""
End Sub

(텍스트 파일이 존재하지 않으면 만들어집니다).

가늠자의 혜택으로, 우리는 내 솔루션이 이미 주어진 것과 거의 연계되어 있음을 알 수 있습니다.

해당 코드 라인을 수동으로 주어진 명령으로 변환

ipconfig /all > "C:\Alans Folder\test1.txt"

작동하는 것 같습니다

이것은 또한 작동

ipconfig /all > C:\AlansFolder\test1.txt

이것은하지 않습니다

ipconfig /all > C:\Alans Folder\test1.txt

이 마지막 형태는 또한 새 크라의 해결책과도 연계되며….” 각 경로 주위에 따옴표를 추가하고 전체 명령을 따옴표 "…." 로 묶어야합니다 .

cmd.exe /c "ipconfig /all > "C:\Alans Folder\test1.txt""

-3

CD 로이 문제를 해결할 수 있습니다 명령 .이 명령은 큰 따옴표없이 공백을 이해하며 다음과 같은 방법으로 모든 프로그램을 호출 할 수 있습니다.

C : \ Windows \ system32> cd c : \ Program Files \ MongoDB \ 서버 \ 3.2 \ bin

c : \ Program Files \ MongoDB \ Server \ 3.2 \ bin> mongo는 이제 mongo.exe 명령 프롬프트를 호출합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.