Komut İsteminde boşlukları nasıl kullanabilirim?


192

Windows Komut Satırında boşlukları nasıl kullanabilirim?

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

Yanıtlar:


261

Bu durumda tek tırnak işaretleri işe yaramaz. Her yolun başına tırnak işaretleri eklemeniz ve ayrıca tüm komutu tırnak işaretleri içine almanız gerekir:

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

4
Evet, her yol tırnak içine alınmalıdır. Ayrıca, tüm komutun başka bir çift tırnak işareti içine alınması gerekir. Şimdi çalışıyor! Teşekkürler!
Kalk

@ sakra da benim için çalışmıyor. "" C: \ Program Files \ WinRAR \ WinRAR.exe "bir "C: \ Veri Tabanı yedekler \ Dedicated_Pokemon_Pets_DB_Backup_2014_7_10_7_2.rar" -ri1 -mt2 -m5 "C: \ Veri Tabanı yedekler \ Dedicated_Pokemon_Pets_DB_Backup_2014_7_10_7_2.bak""
MonsterMMORPG

3
@MonsterMMORPG öneki ile satır ön ekicmd /C
sakra

@sakra Adı olan bir dosyayı boşluklarla hariç tutmak istiyorum CEEMEA & LATAM.doc. Ne yapmalıyım? "C:\Program Files\WinRAR\rar" a -agmmddyy -x*CEEMEA & LATAM.doc ".rar"
Ibn e Ashiq

benim için çalıştı ama dış tırnak olmadan: "C: \ Program Files (x86) \ WinRar \ Rar.exe" a "D: \ Hello 2 \ File.rar" "D: \ Hello 2 \"
user1620090

78

Ben sadece yol beyaz boşluk karakter kullanımını içeren bir durumda, örneğin, xyzhangi konuma app erişmek gerektiğinde anladım :

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

Bunu windows cmd isteminden çalıştırmak için şunu kullanmanız gerekir:

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

veya

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

Bunu denedim ama benim durumumda çalışmıyor gibi görünüyor: python "" C: \ Program Files (x86) \ Jenkins \ workspace \ Map Checker Unit Test \ sqs-poller \ node_modules \ map-checker \ python \ unit_test.py "-d" C: \ Program Dosyaları (x86) \ Jenkins \ workspace \ Map Checker Birim Testi \ MAP_CHECK_TMP \ # Test Durumu "-o" C: \ Program Dosyaları (x86) \ Jenkins \ workspace \ Map Checker Birim Testi \ MAP_CHECK_TMP \ #Test Vaka "-o2" C: \ Program Dosyaları (x86) \ Jenkins \ workspace \ Map Checker Birim Testi \ MAP_CHECK_TMP \ #Test Vaka \ testcase_results.csv "" -l "C: \ Program Dosyaları (x86) \ Jenkins . \ çalışma alanı \ Harita Denetleyicisi Birim test \ MAP_CHECK_TMP "-Geri Yükleme" yardımcı olabiliriz?
hafizan

22

Çift tırnak işareti sorunu çözmezse, örn.

dir /X ~1 c:\

alternatif dosya veya dizin adlarının bir listesini almak için. Örnek çıktı:

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)

Şimdi komutunuzda 5. sütundaki 8 karakterlik kısa dosya veya klasör adını kullanın, örneğin PROGRA ~ 1 veya DEFAUL ~ 1.XML. Örneğin:

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

Bu kolay yol. Hiçbir çift-çift alıntı mucky-muck dahil.
Dave Anderson

Kısa 8.3'ün bir NTFS seçeneği olduğunu ve devre dışı bırakılabileceğini biliyor musunuz? Ona güvenme.
Zan Lynx

10

Boşluk içeren yolları çift tırnak işareti içine alın.

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

O zaman sorun, argüman sözdiziminin Rar.exegerçekte ne olduğudur . Yanlış kullanıyor olabilirsiniz. Belki denemek "D:\Hello 2\"veya "D:\Hello 2"yerine "D:\Hello 2\*.*"?
JAB

cmd / C "C: \ Program Dosyaları (x86) \ WinRar \ Rar.exe" a D: \ Hello \ File.rar D: \ Hello *. * (Boşluğu yoktur ve çalışır) ama nasıl yapılır boşluklarla başa çıkmak?
faressoft

@JAB gibi adlara sahip bir dosyayı hariç tutmanız gerekiyorsa CEEMEA & LATAM.doc. Ne olmalı? "C:\Program Files\WinRAR\rar" a -x*CEEMEA & LATAM.doc ".rar"
Ibn e Ashiq

10

Çift tırnak içinde karmaşık yol adları sağlamaya çalışın (ve dosyalar için sonuna dosya uzantıları ekleyin.)

Dosyalar için:

call "C:\example file.exe"

Dizin için:

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

CMD, çift tırnak ("xyz") içeren metni tek bir dize ve tek tırnak ('xyz') içindeki metni komut olarak yorumlar. Örneğin:

('Dir / b / s * .txt') içindeki %% A için ('komut')

('Dir / b / s * .txt') içindeki %% A için (yankı "%% A")

Ve iyi bir şey, cmd bash gibi büyük / küçük harfe duyarlı değildir. Yani "Yeni fiLE.txt" ve "yeni file.TXT" buna benzer.

* Not: Yukarıdaki durumda %% A değişkenleri büyük / küçük harfe duyarlıdır (%% A, %% a değerine eşit değil).


Dosya adlarındaki alt çizgiler önemli mi? 'Dosya_adı' vs 'dosya adı' gibi
SqueakyBeak

7

()Geçerli batcholan komutu okumayı tercih ederim, bu da okumayı biraz daha kolay hale getirir:

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"

bu toplu iş dosyasında benim için çalıştı


2

Sadece Tırnak İşareti ekleyin

Örnek: "C: \ Kullanıcılar \ Kullanıcı Adı"

Umarım çözüldü!


7
Aynı şey zaten yarım düzine kez söylendi. Bu ne ekstra değer katıyor?
JJJ


0

Commend Prompt içindeki boşluklar (VBA Shell komut kodu satırında)

Ben çok benzer bir sorun vardı, hangi komut penceresinden bir metin dosyasına içerik almak için VBA üzerinden otomatikleştirirken komut isteminde bir boşluk oldu. Bu iş parçacığı bana tam anlamıyla çözüm bulamadığım yollardan biri.

Bu, benzer bir sorunu olan diğerlerine yardımcı olabilir: Tırnaklarla sözdiziminin doğru olması her zaman zor olduğundan, bazı belirli örneklerin gösterilmesinin her zaman yararlı olduğunu düşünüyorum. Kabuk şey aracılığıyla VBA'daki komut istemini kullanarak elde ettiğiniz ek sorun, kod satırı genellikle bir şeyler ters gittiğinde hata yapmaz: aslında siyah öde penceresinin yanıp sönmesi bir şey yapıldığını düşünmeye yol açar.

Örnek olarak ... içinde bir metin dosyası bulunan bir Klasörüm olduğunu varsayalım

C: \ Alans Klasörü \ test1.txt ( https://imgur.com/FELSdB6 )

Klasör adındaki boşluk sorunu verir.

Klasör AlansFolder'ın var olduğunu varsayarsak, böyle bir şey işe yarayacaktır.

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

Bu işe yaramaz. (Hata yapmaz).

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

Yolun etrafına alıntı çiftleri dahil etmek, çalışmasını sağlayacaktır

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

(Bu arada, metin dosyası yoksa, o zaman yapılır).

Gezin yararıyla, çözümümün daha önce verilmiş olanlarla yaklaşık olarak bağlandığını görebiliriz.

Bu kod satırını sahip olacağımız manuel bir komuta dönüştürmek

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

İşe yarıyor gibi görünüyor

Bu da işe yarıyor

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

Bu değil

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

Bu son form aynı zamanda sacra'nın çözümüyle de çalışır ve bağlanır… ” Her yolun etrafına tırnak işaretleri eklemeniz ve tüm komutu tırnak işaretleri içine almanız gerekir “… ..

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

-3

Bu komutu cd komutu ile çözebilir , bu komut çift tırnaksız boşlukları anlar ve herhangi bir programı bu şekilde çağırabilirsiniz:

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

c: \ Program Files \ MongoDB \ Server \ 3.2 \ bin> mongo now komut istemi call mongo.exe

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.