2017-10-05 17 views
5

शामिल मैं कुछ सरल एक्सेल VBA कोड की तरह गैर Excel फ़ाइलों खुलती है खुलने:एक फ़ाइल जिसका नाम एक अंतरिक्ष

Sub scriptTest() 
    Set objshell = CreateObject("Wscript.Shell") 
    objshell.Run ("C:\TestFolder\Book1.pdf") 
    Set objshell = Nothing 
End Sub 

इस रनिंग एक्रोबैट रीडर में फ़ाइल को खोलता है। लेकिन अगर मैं एक फ़ाइल जिसका नाम चरित्र की तरह एक स्थान शामिल हैं को खोलने का प्रयास:

Sub scriptTest() 
    Set objshell = CreateObject("Wscript.Shell") 
    objshell.Run ("C:\TestFolder\Bo ok1.pdf") 
    Set objshell = Nothing 
End Sub 

मैं:

enter image description here

दोनों फ़ाइलों खुला ठीक है अगर मैं Windows से Run आदेश का उपयोग करें प्रारंभ मेनू। मैं कैसे इस समस्या को दूर कर सकते हैं ??

+0

नाम –

+4

उपयोग 'objshell.Run (" "" सी में अंतरिक्ष से पहले एक या दो बैकस्लैश डालने की कोशिश करो पर अमल करने की जरूरत है: \ TestFolder \ बो ok1। पीडीएफ "" ") 'ताकि फ़ाइल नाम उद्धरण चिह्नों में संलग्न हो। अन्यथा ऐसा लगता है कि आप 'ok1.pdf' – YowE3K

+0

@MykolaShchetinin के पैरामीटर के साथ' C: \ TestFolder \ Bo.exe' चला रहे हैं, सुझाव के लिए धन्यवाद, लेकिन न तो आगे स्लैश या बैकस्लैश का कोई प्रभाव पड़ा। –

उत्तर

8

जब बयान objshell.Run ("C:\TestFolder\Bo ok1.pdf") को क्रियान्वित करने के लिए, आप आदेश

C:\TestFolder\Bo ok1.pdf 

यह ok1.pdf की एक पैरामीटर के साथ कार्यक्रम C:\TestFolder\Bo.exe निष्पादित करने के लिए एक अनुरोध किया जा रहा है के रूप में व्याख्या की है निष्पादित करने के लिए खोल पूछ रहे हैं।

आप वास्तव में शेल कमांड

"C:\TestFolder\Bo ok1.pdf" 

जहां उद्धरण चिह्नों के लिए "समूह" कमांड के कुछ हिस्सों को एक साथ आदेश दुभाषिया द्वारा किया जाता है पर अमल करना चाहते हैं।

कि आदेश प्राप्त करने के लिए, आप बयान

objshell.Run """C:\TestFolder\Bo ok1.pdf""" 
+0

वाह, 6 वोटों को इंगित करने के लिए जब आप उद्धृत स्ट्रिंग से बचना चाहते हैं तो आपको कोट्स को दोगुना करना होगा। गंभीरता से, इसका उत्तर पहले नहीं दिया गया है? – Lankymart

+0

@Lankymart यह वास्तव में नहीं था कि उद्धरण चिह्नों से बचने की आवश्यकता थी, यह था कि उद्धरण चिह्नों का उपयोग करने की आवश्यकता थी। (यदि आपको एक अच्छा डुप्लिकेट मिलता है, तो कृपया प्रश्न को बंद करने के लिए स्वतंत्र महसूस करें, और मुझे पिंग करें ताकि मैं जवाब हटा सकूं।) – YowE3K

संबंधित मुद्दे