खोज…


परिचय

Batch VBS कार्यक्षमता के साथ चलने में सक्षम हैं जिससे उनकी विश्वसनीयता बढ़ जाती है। उदाहरण के लिए, VBS दशमलव, रिक्त स्थान और कुछ अन्य उन्नत कार्यों से निपट सकता है जो batch में नहीं किए जा सकते हैं। WMI और ActiveX ऑब्जेक्ट के साथ काम करने में भी सक्षम है।

अस्थायी फ़ाइल के साथ VBS चलाएं

batch से किसी अन्य स्क्रिप्ट को चलाने के लिए पुरानी स्कूल विधि स्क्रिप्ट को किसी अन्य स्थान में echo करने के लिए है, और फिर उसे चलाएं।

इस विधि को इस तरह दर्शाया जा सकता है:

@echo off
rem VBS below
    echo your vbs > TempVBS.vbs
    echo other vbs>>TempVBS.vbs
rem End of VBS

cscript //nologo TempVBS.vbs
del /f /s /q TempVBS.vbs

ऊपर दी गई विधि के लिए बहुत सारी echo (vbs) >> TempVBS.vbs की आवश्यकता होगी, इसलिए यहां इसे छोटा करने का एक तरीका है। (Aacini द्वारा कोड)

@echo off
setlocal

rem Get the number of the "<resource>" line
for /F "delims=:" %%a in ('findstr /N "<resource>" "%~F0"') do set "start=%%a"

rem Skip such number of lines and show the rest of this file
(for /F "usebackq skip=%start% delims=" %%a in ("%~F0") do echo %%a) > Program.vbs

cscript //nologo Program.vbs
del /f /s /q Program.vbs
exit /b

<resource>
your vbs
another line of vbs

अंतिम विधि streams का उपयोग करके streams । एक फ़ाइल में कुछ धाराएँ हो सकती हैं। और हर स्ट्रीम में अलग-अलग जानकारी हो सकती है।

@echo off

    echo vbs >%0:stream1
    rem This command redirect "vbs" into the stream1 of this script, then we can call it later

cscript %0:stream1 //nologo
   rem if you like, you can clear the stream1 of this file by:
   type nul>%0:stream1

अस्थायी फ़ाइलों का उपयोग किए बिना बैच फ़ाइल में vbscript कोड एम्बेड करें

यहाँ dostips मंचों के उपयोगकर्ता Liviu द्वारा आविष्कार की गई तकनीक (हैक) के साथ एक उदाहरण दिया गया है:

@echo off
echo Printed by CMD.EXE
cscript //nologo "%~f0?.wsf" //job:JS //job:VBS

exit /b %errorlevel%

----END OF BATCH CODE---
<package>
  <job id="JS"> 
    <script language="VBScript">
    
        WScript.Echo("Printed by VBScript"):
        
    </script>
  </job>
  <job id="VBS"> 
    <script language="JScript">
    
        WScript.Echo("Printed by JScript");
        
    </script>
  </job>
</package>

जैसा कि विंडोज़ स्क्रिप्ट होस्ट के साथ wsf फ़ाइल चलाना विस्तार के प्रति संवेदनशील है, आप किसी भी एक्सटेंशन को जोड़कर फ़ाइल चला सकते हैं ?.wsf फ़ाइल के अंत में ?.wsf (जो कि हैक का मूल है)। जबकि Liviu का उदाहरण संभवतः अधिक मजबूत है उपरोक्त कोड अधिक सरलीकृत संस्करण है। जैसा कि wsh <package> नोड के बाहर की चीजों के बारे में ज्यादा परवाह नहीं करता है, आप सब कुछ xml टिप्पणियों में डालने के लिए बाध्य नहीं हैं। हालांकि यह पुनर्निर्देशन प्रतीकों ( < और > ) से सावधान रहना चाहिए



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow