एक बैच (बैट) स्क्रिप्ट को एक निष्पादन योग्य (EXE) फ़ाइल में बदलें
जब आप इसे करने के लिए नीचे आते हैं, बैच फ़ाइलें और निष्पादन योग्य फ़ाइलें उसी तरह से बहुत अधिक काम करती हैं। दोनों ही विंडोज के निष्पादन के लिए निर्देशों और तर्क का एक सेट हैं। तो क्यों आप एक बैच फ़ाइल को एक निष्पादन योग्य में बदलना चाहते हैं यदि वे अनिवार्य रूप से समान काम करते हैं? यहाँ कुछ कारण हैं:
- पोर्टेबिलिटी - आप अपने EXE फ़ाइल में अतिरिक्त टूल शामिल कर सकते हैं जो बैच फ़ाइल पर निर्भर करता है.
- संरक्षण - एक EXE आपके स्रोत स्क्रिप्ट के लिए सुरक्षा प्रदान करता है यह सुनिश्चित करने के लिए कि यह अनजाने में संशोधित नहीं है.
- सुविधा - निष्पादन योग्य फ़ाइलों को विंडोज स्टार्ट मेनू और / या विंडोज 7 टास्क बार में पिन किया जा सकता है.
नीचे दी गई स्क्रिप्ट के साथ, आप आसानी से एक बैच फ़ाइल से अपनी खुद की निष्पादन योग्य फ़ाइल बना सकते हैं, साथ में और आवश्यक एम्बेडेड उपकरण.
विन्यास
यह स्क्रिप्ट किसी भी शामिल टूल के साथ बैच फ़ाइल को बंडल और निष्पादित करने के लिए 7-ज़िप एडवांस्ड SFX (SelF eXtractor) का लाभ उठाती है। इसलिए आपको इन्हें डाउनलोड करने (अंत में दिए गए लिंक) की आवश्यकता होगी और इन्हें एक ही डायरेक्टरी में निकालना होगा.
एक बार जब आपके पास सब कुछ डाउनलोड हो जाए, तो स्क्रिप्ट में 'PathTo7Zip' वैरिएबल को उस स्थान पर सेट करें, जहाँ ये फाइलें डाउनलोड की गई हैं.
लिपी
@ इको ऑफ इको बनाओ बैट ईसीएचओ से लिखित रूप से बनाएं: जेसन फॉल्कनर इको SysadminGeek.com ECHO। ECHO। REM उपयोग: REM MakeExeFromBat BatFileToConvert [शामिल करें] [ReadeFile2] […] REM REM आवश्यक पैरामीटर: REM BatFileToConvert REM स्रोत बैच फ़ाइल आउटपुट Exe फ़ाइल का उपयोग करने के लिए उपयोग करें। REM REM वैकल्पिक पैरामीटर्स: REM शामिल करें REM अतिरिक्त फ़ाइल एक्सई फ़ाइल में शामिल करने के लिए। REM आप बैच फ़ाइल द्वारा उपयोग किए जाने वाले बाहरी उपकरणों को शामिल कर सकते हैं ताकि वे निष्पादन मशीन पर उपलब्ध हों। SETLOCAL REM कॉन्फ़िगरेशन (कोई उद्धरण आवश्यक नहीं): SET PathTo7Zip = REM ---- इस पंक्ति के नीचे कुछ भी संशोधित न करें ---- SET OutputFile = "% ~ n1.exe" SET SourceFiles = "% TEMP + MakeEXE_files.txt" SET कॉन्फ़िगरेशन = "% TEMP% MakeEXE_config.txt" SET Source7ZFile = "% Temp% MakeEXE.7z" REM मौजूदा फ़ाइलों को निकालें यदि मौजूदा फ़ाइल% आउटपुट%%% DEL% आउटपुट आउटपुट% रेम स्रोत संग्रह ECHO "% ~ dpnx1">% SourceFiles%: AddInclude IF % 2 == GOTO EndInclude ECHO "% ~ dpnx2" >>% SourceFiles% SHIFT / 2 GOTO AddInclude: EndInclude "% Pathoo7Zip% 7za.exe"% Source7ZFile% @% SourceFiles% REM BuildCH फाइल% REM FileCHCH ;! @ स्थापित करें @ UTF-8! >% विन्यास% ईसीएचओ रनप्रोग्राम = "% ~ nx1" >>% विन्यास% ईसीएचओ! @ स्थापित करें @! >>% विन्यास% REM बिल्ड EXE COPY / B "% PathTo7Zip% 7zsd.sfx" +% विन्यास% +% Source7ZFile% आउटपुटफ़ाइल% रेम साफ़ करें यदि EXIST% SourceFile% DEL% SourceFiles% यदि EXIST% कॉन्फ़िग% DEL% विन्यास% % IF EXIST% Source7ZFile% DEL% Source7ZFile% ENDLOCAL
निष्कर्ष
यह ध्यान रखना महत्वपूर्ण है कि जबकि परिणामी फ़ाइल स्रोत BAT फ़ाइल के समान ही चलती है, यह निष्पादन योग्य रूपांतरण के लिए एक सच्चा बैच नहीं है। परिणामी फ़ाइल एक EXE है, हालांकि इसका उपयोग स्वयं-निकालने वाले इंस्टॉलरों के लिए किया जाना है। जब आप परिणामी EXE फ़ाइल निष्पादित करते हैं, तो प्रक्रिया कुछ इस तरह से होती है:
- EXE फ़ाइल की सामग्री अस्थायी निर्देशिका में निकाली गई है.
- स्क्रिप्ट द्वारा उत्पन्न कॉन्फिग फाइल पढ़ी जाती है.
- EXE फ़ाइल में निहित बैच फ़ाइल एक नई कमांड विंडो में निष्पादित की जाती है.
- एक बार समाप्त होने के बाद, अस्थायी फ़ाइलें हटा दी जाती हैं.
Windows Vista और नए OS पर, स्क्रिप्ट चलने के बाद आपको निम्न संदेश बॉक्स दिखाई दे सकता है। 'इस प्रोग्राम को सही ढंग से इंस्टॉल किया गया' चुनने के बाद, संदेश बॉक्स भविष्य में इस फाइल के लिए प्रदर्शित नहीं होगा.
क्योंकि EXE फ़ाइल एक नई विंडो में लॉन्च होती है, लॉगिंग आउटपुट ('>' चार का उपयोग करके) का विशिष्ट तरीका अपेक्षा के अनुरूप काम नहीं करेगा। आउटपुट को लॉग करने के लिए, आपको अपनी स्रोत स्क्रिप्ट में इसे मूल रूप से संभालना होगा.
इन छोटी असुविधाओं के बावजूद, बैच फ़ाइल को एक निष्पादन योग्य में बदलने में सक्षम होने के कारण वास्तव में काम आ सकता है.
लिंक
Sysadmin Geek से बैट स्क्रिप्ट से बनाओ EXE डाउनलोड करें
7-जिप कमांड लाइन टूल डाउनलोड करें
डाउनलोड 7-ज़िप एडवांस्ड 7zSD SFX