Yanıtlar:
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\*.*""
cmd /C
CEEMEA & LATAM.doc
. Ne yapmalıyım? "C:\Program Files\WinRAR\rar" a -agmmddyy -x*CEEMEA & LATAM.doc ".rar"
Ben sadece yol beyaz boşluk karakter kullanımını içeren bir durumda, örneğin, xyz
hangi 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"
Ç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
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\*.*"
Rar.exe
gerçekte ne olduğudur . Yanlış kullanıyor olabilirsiniz. Belki denemek "D:\Hello 2\"
veya "D:\Hello 2"
yerine "D:\Hello 2\*.*"
?
CEEMEA & LATAM.doc
. Ne olmalı? "C:\Program Files\WinRAR\rar" a -x*CEEMEA & LATAM.doc ".rar"
Ç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).
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ı
Sadece Tırnak İşareti ekleyin
Örnek: "C: \ Kullanıcılar \ Kullanıcı Adı"
Umarım çözüldü!
Tırnak işareti kullanmayı denemelisiniz.
cmd /C "C:\Program Files (x86)\WinRar\Rar.exe" a "D:\Hello 2\File.rar" "D:\Hello 2\*.*"
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""
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