Bagaimana cara menggunakan spasi di Command Prompt?


192

Bagaimana saya bisa menggunakan spasi di Windows Command Line?

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

Jawaban:


261

Tanda kutip tunggal tidak akan berlaku dalam kasus itu. Anda harus menambahkan tanda kutip di sekitar setiap jalur dan juga melampirkan seluruh perintah dalam tanda kutip:

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

4
Ya, setiap jalur harus ditutup dengan tanda kutip. Selain itu, seluruh perintah harus dilampirkan lagi oleh sepasang tanda kutip lainnya. Sekarang berhasil! Terima kasih!
Bangkit

@akra tidak bekerja untuk saya juga. "" C: \ Program Files \ WinRAR \ WinRAR.exe "a "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 awalan baris dengancmd /C
sakra

@ cakra Saya ingin mengecualikan file yang memiliki nama dengan spasi CEEMEA & LATAM.doc. Apa yang harus saya lakukan? "C:\Program Files\WinRAR\rar" a -agmmddyy -x*CEEMEA & LATAM.doc ".rar"
Ibn e Ashiq

bekerja untuk saya tetapi tanpa tanda kutip luar: "C: \ Program Files (x86) \ WinRar \ Rar.exe" a "D: \ Hello 2 \ File.rar" "D: \ Hello 2 \"
user1620090

78

Saya baru tahu bahwa untuk kasus di mana jalur melibatkan penggunaan karakter spasi putih, misalnya, ketika saya perlu mengakses aplikasi xyzyang lokasinya:

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

Untuk menjalankan ini dari windows cmd prompt, Anda harus menggunakan

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

atau

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

Saya mencoba ini tetapi sepertinya tidak berhasil dalam kasus saya: 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 Unit Test \ MAP_CHECK_TMP \ #Test Case "-o" C: \ Program Files (x86) \ Jenkins \ workspace \ Map Checker Uji Unit \ MAP_CHECK_TMP \ #Kasus Uji "-o2" C: \ Program Files (x86) \ Jenkins \ workspace \ Map Checker Unit Test \ MAP_CHECK_TMP \ #Kasus Uji \ testcase_results.csv "" -l "C: \ Program Files (x86) \ Jenkins \ workspace \ Map Checker Unit Test \ MAP_CHECK_TMP "-restore". dapat membantu?
hafizan

22

Jika tanda kutip ganda tidak menyelesaikan masalah maka coba misalnya

dir /X ~1 c:\

untuk mendapatkan daftar file alternatif atau nama direktori. Contoh output:

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)

Sekarang gunakan nama file 8 folder atau nama pendek di kolom 5, misalnya PROGRA ~ 1 atau DEFAUL ~ 1.XML, dalam perintah Anda. Misalnya:

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

Ini cara yang mudah. Tidak ada penawaran double-double mucky-muck yang terlibat.
Dave Anderson

Apakah Anda sadar bahwa short 8.3 adalah opsi NTFS dan dapat dinonaktifkan? Jangan mengandalkan itu.
Zan Lynx

10

Lampirkan jalur yang berisi spasi dengan tanda kutip ganda.

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

Maka masalahnya terletak pada apa sintaks argumen Rar.exesebenarnya. Anda mungkin salah menggunakannya. Mungkin mencoba "D:\Hello 2\"atau "D:\Hello 2"bukan "D:\Hello 2\*.*"?
JAB

cmd / C "C: \ Program Files (x86) \ WinRar \ Rar.exe" a D: \ Hello \ File.rar D: \ Hello *. * (Tidak memiliki spasi dan berfungsi) tetapi bagaimana caranya berurusan dengan ruang?
faressoft

@ JAB jika Anda perlu mengecualikan file yang memiliki nama dengan spasi seperti CEEMEA & LATAM.doc. Apa yang seharusnya? "C:\Program Files\WinRAR\rar" a -x*CEEMEA & LATAM.doc ".rar"
Ibn e Ashiq

10

Cobalah untuk memberikan nama path yang kompleks dalam tanda kutip ganda (dan sertakan ekstensi file di akhir file).

Untuk file:

call "C:\example file.exe"

Untuk Direktori:

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

CMD mengartikan teks dengan tanda kutip ganda ("xyz") sebagai satu string dan teks dalam tanda kutip tunggal ('xyz') sebagai perintah. Sebagai contoh:

UNTUK %% A dalam ('dir / b / s * .txt') do ('command')

UNTUK %% A dalam ('dir / b / s * .txt') lakukan (echo "%% A")

Dan satu hal yang baik, cmd tidak * case sensitif seperti bash. Jadi "New fiLE.txt" dan "file baru.TXT" sama saja.

* Catatan: Variabel %% A dalam kasus di atas adalah case-sensitive (%% A tidak sama dengan %% a).


Apakah garis bawah dalam nama file dihitung? Seperti 'file_name' vs 'file name'
SqueakyBeak

7

Saya lebih suka melampirkan perintah ()yang valid batchyang membuatnya sedikit lebih mudah dibaca:

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"

ini bekerja untuk saya dalam file batch


2

Cukup tambahkan Tanda Kutip

Contoh: "C: \ Users \ Nama Pengguna"

Semoga bisa dipecahkan!


7
Hal yang sama telah dikatakan setengah lusin kali. Nilai tambahan apa yang ditambahkan oleh ini?
JJJ


0

Spaces dalam Commend Prompt (dalam baris kode perintah VBA Shell)

Saya punya masalah yang sangat mirip yang akhirnya menjadi ruang di command prompt ketika mengotomatisasi melalui VBA untuk mendapatkan konten dari jendela perintah ke file teks. Thread ini adalah salah satu dari banyak yang saya tangkap di sepanjang jalan yang tidak cukup memberi saya solusinya.

Jadi ini dapat membantu orang lain dengan masalah yang sama: Karena sintaks dengan kutipan selalu sulit untuk diperbaiki, saya pikir menunjukkan beberapa contoh spesifik selalu berguna. Masalah tambahan yang Anda dapatkan menggunakan command prompt di VBA melalui Shell, adalah bahwa baris kode sering tidak akan kesalahan ketika terjadi kesalahan: pada kenyataannya, sekejap jendela perintah hitam menyesatkan untuk berpikir bahwa sesuatu telah dilakukan.

Sebagai contoh ... katakan saya memiliki Folder, dengan file teks di dalamnya seperti di

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

Ruang di sana dalam nama folder memberi masalah.

Sesuatu seperti ini akan berfungsi, dengan asumsi Folder, AlansFolder, ada

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

Ini tidak akan berhasil. (Tidak akan salah).

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

Termasuk pasangan kutipan di sekitar jalan akan membuatnya bekerja

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

(Omong-omong, jika file teks tidak ada, maka akan dibuat).

Dengan manfaat melihat ke belakang, kita dapat melihat bahwa solusi saya mengikat sekitar dengan beberapa sudah diberikan ..

Mengonversi baris kode itu ke perintah yang diberikan secara manual akan kita miliki

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

Itu sepertinya berhasil

Ini juga berfungsi

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

Ini tidak

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

Bentuk akhir ini juga berfungsi dan terkait dengan solusi dari sakra .... " Anda harus menambahkan tanda kutip di sekitar setiap jalur dan juga melampirkan seluruh perintah dalam tanda kutip “… ..

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

-3

Ini dapat menyelesaikan masalah ini dengan perintah cd , perintah ini memahami spasi tanpa tanda kutip ganda dan Anda dapat memanggil program apa saja dengan cara ini misalnya:

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

c: \ Program Files \ MongoDB \ Server \ 3.2 \ bin> mongo sekarang command prompt memanggil mongo.exe

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.