2012-08-10 24 views
20

से vbscript चल रहा है मुझे बस एक vbscript चलाने के लिए एक साधारण बैच फ़ाइल लिखने की आवश्यकता है। Vbscript और बैच फ़ाइल दोनों एक ही फ़ोल्डर में हैं और SysWOW64 निर्देशिका में हैं क्योंकि vbscript केवल उस निर्देशिका में निष्पादित किया जा सकता है। वर्तमान में मेरी बैच फ़ाइल निम्नानुसार है:बैच फ़ाइल

@echo off 
%WINDIR%\SysWOW64\cmd.exe 
cscript necdaily.vbs 

लेकिन vbscript निष्पादित नहीं किया गया था और केवल कमांड प्रॉम्प्ट खुला है। क्या कोई मुझे बता सकता है कि जब मैं इस बैच फ़ाइल को चलाता हूं तो मैं vbscript कैसे निष्पादित कर सकता हूं? धन्यवाद।

उत्तर

31

वर्तमान में चल रहे बैच फ़ाइल का मार्ग प्राप्त करने के लिए आप %~dp0 का उपयोग कर सकते हैं।

संपादित

चलाने से पहले VBS स्थान पर निर्देशिका को बदलने के लिए आप,

@echo off 
pushd %~dp0 
cscript necdaily.vbs 

VBS तुल्यकालिक एक ही विंडो में चलाना चाहते हैं तो आप VBS तुल्यकालिक में चलाना चाहते हैं तो एक नई विंडो, फिर

@echo off 
pushd %~dp0 
start /wait "" cmd /c cscript necdaily.vbs 

यदि आप वीबीएस को उसी विंडो में असीमित रूप से चलाने के लिए चाहते हैं, तो

@echo off 
pushd %~dp0 
start /b "" cscript necdaily.vbs 

आप VBS एसिंक्रोनस रूप से एक नई विंडो में चलाने के लिए चाहते हैं, तो

@echo off 
pushd %~dp0 
start "" cmd /c cscript necdaily.vbs 
+0

मैं सभी आदेशों की कोशिश की लेकिन यह अभी भी काम नहीं करेगा – user918197

+1

@ user918197 -। ??? वे मेरे लिए काम करते हैं। शायद आपका वीबीएस केवल तभी काम करता है जब वर्तमान निर्देशिका वीबीएस स्थान से मेल खाती है। उत्तर में किए गए संपादनों को आज़माएं। – dbenham

+0

क्या 32-बिट या 64-बिट चीज़ के साथ इसका कोई संबंध नहीं है क्योंकि मेरी vbscript विंडोज सर्वर 2008 आर 2 में नहीं चल सकती है जो कि 64-बिट है और यह वाईआई को पूरे फ़ोल्डर को कॉपी करता है जिसमें vyscript को SysWOW64 निर्देशिका में शामिल किया गया है और यह सक्षम था चलाने के लिए जब मैं कमांड टाइप करता हूं, cscript necdaily.vbs लेकिन बैच फ़ाइल में नहीं। – user918197

7

इस बैच फ़ाइल के लिए आदेश है और यह VBScript चला सकते हैं।

C:\Windows\SysWOW64\cmd.exe /c cscript C:\Windows\SysWOW64\...\necdaily.vbs 
1

खैर मैं खुले क्लिक करने के लिए, लेकिन इस सवाल का जवाब है बिना एक बैच फ़ाइल के भीतर एक .vbs खोलने की कोशिश कर रहा हूँ ...

सेट APPDATA =% सीडी%

शुरू (अपने एक .vbs साथ कोष्ठक के बिना यहाँ फ़ाइल अगर यह एक vbd फ़ाइल है)

आशा में मदद करता है :)

5

बैच फ़ाइलों पंक्ति दर पंक्ति संसाधित और उसे समाप्त कर जब भी आप एक फोन कर रहे हैं एन निष्पादन योग्य सीधे।
- प्रक्रिया को समाप्त करने और जारी रखने के लिए बैच फ़ाइल को प्रतीक्षा करने के लिए, इसके सामने call डालें।
- बैच फ़ाइल को प्रतीक्षा किए बिना जारी रखने के लिए, इसके सामने start "" डालें।

मैं अपने लक्ष्य को पूरा करने के लिए इस एक पंक्ति स्क्रिप्ट का उपयोग की सलाह देते हैं:

@call cscript "% ~ dp0necdaily.vbs"

(क्योंकि यह एक पंक्ति है, तो आप उपयोग कर सकते हैं @ @echo बंद) के बजाय

आपको लगे कि आपकी स्क्रिप्ट केवल cmd.exe की SysWOW64 संस्करणों से कहा जा सकता है, तो आप कोशिश कर सकते हैं:

@% WINDIR% \ SysWOW64 \ cmd.exe/c कॉल cscript "% ~ dp0necdaily।vbs "

आप विंडो की जरूरत है रहने के लिए, आप बदल सकते हैं// साथ ग कश्मीर

+0

पहले कमांड के लिए, शायद ['कॉल'] (https://ss64.com/nt/call.html) की आवश्यकता भी नहीं है। स्क्रिप्ट को इसके बिना समकालिक रूप से निष्पादित किया जाता है। आम तौर पर 'कॉल' का उपयोग निष्पादन संदर्भों को मिश्रण किए बिना दूसरी * बैच * स्क्रिप्ट को कॉल करने के लिए किया जाता है। तो, एक छोटी '@cscript "% ~ dp0necdaily.vbs" नौकरी करता है। –

1

बस इस कोड का प्रयास करें:

शुरू" "" C: \ Users \ दीपेश \ डेस्कटॉप \ VBScript \ welcome.vbs "

और के रूप में .bat बचाने के लिए, यह मेरे लिए काम करता