विंडोज में कौन सी स्क्रिप्टिंग भाषाएँ उपयोगी हैं? [बन्द है]


48

विंडोज ऑटोमेशन के लिए कौन सी स्क्रिप्टिंग भाषाएँ उपयोगी हैं?


10
मैंने +1 दिया क्योंकि मैं आपके द्वारा लिखे गए एक दिलचस्प प्रश्न को पीछे छोड़ सकता हूं। हालांकि यह है, मुझे लगता है कि "मुख्य" एक दुर्भाग्यपूर्ण शब्द विकल्प है जिसे आपको कम अस्पष्ट बनाने के लिए संपादित करना चाहिए। शायद "सबसे अधिक इस्तेमाल किया जाने वाला", "सबसे अच्छा समर्थित", या "अनुशंसित", जो आपके मतलब पर निर्भर करता है। SuperUser में आपका स्वागत है! :)
ब्रेनन विंसेंट

2
@ ब्रेनन विंसेंट: यह एक शानदार सुझाव है, लेकिन इस बिंदु पर "मुख्य" शब्द को बदलने से उत्तर की भावना से अलग हो सकते हैं। मुझे लगता है कि आपकी टिप्पणी इस मामले पर संस्करणों की बात करती है, और सवाल यह है कि जैसा है वैसा ही बेहतर है। (उस तरह से आपके लिए +1)।
रैंडोल्फ रिचर्डसन

1
फिलहाल मुझे लगता है कि यह सवाल व्यक्तिपरक श्रेणी में आता है। हालांकि ब्रेनन के शब्दों में थोड़ा संशोधन करने से पता चलता है कि मुझे लगता है कि यह काफी रोचक सामुदायिक विकि प्रविष्टि हो सकती है।
जो टेलर

1
मुझे भी व्यक्तिपरक लगता है। स्क्रिप्टिंग भाषाओं के लिए, "मुख्य" या "सर्वश्रेष्ठ" या "पसंदीदा" विशेष कार्य के पूरा होने के आधार पर भिन्न होगा, और एक व्यक्ति के कौशल और अनुभव।
इस्जी

3
मैं इस सवाल का अर्थ लेता हूं: आज विंडोज के लिए मूल स्क्रिप्टिंग भाषा क्या है ?, यानी, स्क्रिप्टिंग भाषा ने ओएस में अंतर्निहित हुक और कार्यों को एपीआई, एक्टिवएक्स आदि की आवश्यकता के विपरीत काम करने के लिए किया है?
सिनेटेक

जवाबों:


36
  1. शक्ति कोशिका
  2. विंडोज स्क्रिप्टिंग होस्ट
    ए। वीबीएसस्क्रिप्ट
    बी। JScript
  3. बैच फ़ाइलें

पॉवरशेल (v2.0)

विंडोज 7 और सर्वर 2008 के रूप में यह विंडोज के साथ जहाज के रूप में PowerShell पर विचार करने के लिए उचित है, और यह Lync और Exchange जैसे सर्वर सॉफ़्टवेयर को संचालित करने के लिए भी मौलिक है क्योंकि उनके लिए उपलब्ध कमांड का एक पूरा सेट है। उपलब्ध सुविधाओं की एक बढ़ती हुई सूची है, विवरण के लिए स्क्रिप्ट केंद्र देखें।

विंडोज स्क्रिप्टिंग होस्ट

Windows स्क्रिप्ट होस्ट (WSH) तकनीकी रूप से ActiveX स्क्रिप्टिंग इंजन के लिए स्क्रिप्टिंग होस्ट है। VBScript और JScript (Microsoft का जावास्क्रिप्ट के कार्यान्वयन) डिफ़ॉल्ट रूप से स्थापित दो इंजन हैं। कई अन्य खुले स्रोत के रूप में उपलब्ध हैं, जिनमें पर्ल, पीएचपी और रूबी शामिल हैं।

VBScript

VB6 और VB.NET के समान सिंटैक्स का उपयोग करते हुए, VBScripts में .NET क्लास के लिए आसान पहुँच की कमी होती है (Powershell .NET पर लिखा गया है, इसलिए इसमें सभी .NET फ़ंक्शन तक पहुंच है)। VBScript ज्यादातर WMI सेवा और इसके द्वारा उजागर की जाने वाली वस्तुओं का लाभ उठाती है।

उदाहरण: यह एक पुनर्स्थापना बिंदु बनाता है।

Set wmi, whatName, errResults
wmi = GetObject("winmgmts:\\.\root\default:Systemrestore")
whatName = InputBox("Enter a name for the Restore Point",WScript.ScriptName)
errResults = wmi.CreateRestorePoint (whatName, 12, 100)
If errResults <> 0 then
    Wscript.Echo "Error " & errResults & " : Unable to create Restore Point"
End If

JScript

आप ECMAScript का उपयोग करके समान स्क्रिप्ट भी लिख सकते हैं:

var wmi = WScript.GetObject("winmgmts:\\.\root\default:Systemrestore");
var whatName = WSHInputBox("Enter a name for the Restore Point",Script.ScriptName);
var errResults = wmi.CreateRestorePoint(whatName, 12, 100);
if(errResults != 0) {
    WScript.Echo("Error "+ err + " : Unable to create Restore Point");
}

कमांड बैच फ़ाइलें

बेशक अच्छा राजभाषा 'बैच फ़ाइल है। उन्हें किसी परिचय की आवश्यकता नहीं है।


7
विंडोज 7 और सर्वर 2008 के लिए, यह
पॉवर्सशेल

@ शशो 2.0 के बारे में विशिष्ट होने के बारे में सहमत हैं
निक जोसव्स्की

"उन्हें किसी परिचय की आवश्यकता नहीं है।" लेकिन क्या एक
एक्स्ट्रो की

16

मैं अभी भी विंडोज 7 में भी डॉस बैच फाइलें लिखता हूं। अधिकांश कार्यों के लिए, यह अभी भी काफी अच्छी तरह से काम करता है, और इसके साथ काम करना बहुत सरल है (साथ ही, कई डॉस कमांड जैसे "फॉर" को समय के साथ बेहतर किया गया है और अधिक प्रदान करता है। विकल्प और कार्यक्षमता जो एक दशक पहले उपलब्ध नहीं थे)।

मेरे लिए, एक डॉस बैच फ़ाइल अभी भी विंडोज के लिए मुख्य स्क्रिप्टिंग भाषा है (यह निश्चित रूप से पारंपरिक है), लेकिन हर किसी की ज़रूरतें और प्राथमिकताएं अलग-अलग होती हैं। कई चीजें हैं जो डॉस बैच की फाइलें नहीं कर सकती हैं (स्क्रिप्टिंग भाषाएं भी सीमाओं को रोक सकती हैं), और उन दुर्लभ अवसरों के लिए जहां मैंने इसका सामना किया है, तब मैं देखता हूं कि मेरे अन्य विकल्प क्या हैं (अक्सर यह पर्ल है, या कभी-कभी यह हो सकता है) एक छोटा कार्यक्रम या एक संपूर्ण आवेदन लिखना)।

यह समझने के लिए कि आपको किन साधनों को पूरा करने की आवश्यकता है, यह तय करना एक महत्वपूर्ण कदम है कि किस उपकरण का उपयोग किया जाए। साधनों के साथ परिचित एक और महत्वपूर्ण पहलू है जो आपके विकल्पों को सीमित कर सकता है। यदि आप यह जानने की कोशिश कर रहे हैं कि कौन सी स्क्रिप्टिंग [या प्रोग्रामिंग] भाषा सीखने के लिए है, तो उम्मीद है कि यह आपके लिए उपयोगी होगी।


10
यदि "मुख्य" स्क्रिप्टिंग भाषा से आपका मतलब "सबसे पुराना और सबसे व्यापक रूप से उपयोग किया जाने वाला" है, तो यह निश्चित रूप से सही उत्तर है। हालांकि, cmdवास्तव में एक राक्षसी है, आसानी से काम करने वाली शेल स्क्रिप्टिंग भाषा है जिसे मैंने कभी भी उपयोग करने का दुर्भाग्य पाया है।
जेएसबी JS

3
मैं भी बैच फ़ाइलों का उपयोग करता हूं जब स्क्रिप्ट को विंडोज के अन्य संस्करणों पर उपयोग करने की आवश्यकता होती है। यदि आप केवल Win7 / Server 2008 के साथ काम कर रहे हैं तो PowerShell जाने का रास्ता है।
jtreser

5
+1, मुझे पता है कि एमएस इसे पॉवरशेल होना चाहता है , लेकिन अभी के लिए यदि आप किसी को एक स्क्रिप्ट भेजना चाहते हैं जो "विंडोज़" चल रही है, तो आपको उन्हें एक डॉस बैच फाइल भेजनी होगी। PS कुछ कार्यों के लिए विंडोज़ के कुछ संस्करणों के लिए बहुत अच्छा है और वे बहुत अधिक शक्ति को उजागर करते हैं, लेकिन बैच फाइलें सार्वभौमिक हैं।
एलन जैक्सन

वर्तमान में मैं जिस बैंक के लिए काम करता हूं, कुछ कंपनियों में, निष्पादन-नीति PS स्क्रिप्ट्स को निष्पादित होने से रोकती है। इस प्रकार मैं अपने PS लिपियों का अनुवाद करने के लिए बैच सीख रहा हूं। तो कुछ स्थितियाँ ऐसी हैं जहाँ बैच की अभी भी जरूरत है ...
T_D

मैं 2011 में आपके उत्तर से सहमत था, लेकिन विंडोज 10 क्रिएटर्स अपडेट के साथ, माइक्रोसॉफ्ट ने विन + एक्स को दबाने पर स्टार्ट मेनू में 'cmd' टाइप करने और एक्सप्लोरर में राइट-क्लिक करने पर Ctrl दबाकर रखने पर डिफ़ॉल्ट रूप से PowerShell बनाया। इसलिए मैं अब विंडोज 10 के लिए डिफ़ॉल्ट स्क्रिप्टिंग भाषा पॉवर्सशेल पर विचार करता हूं, क्योंकि विंडोज 10 क्रिएटर्स अपडेट और बैट / सीएमडी विरासत स्क्रिप्ट।
जोनास

10

यह इस बात पर निर्भर करता है कि आप किससे पूछते हैं। कुछ कभी भी बैच नहीं छोड़ेंगे, कुछ प्यार की वसीयत करते हैं, कुछ प्यार की शक्तियां, दूसरों की तरह AutoIt। फिर पायथन और पर्ल जैसे प्लेटफ़ॉर्म स्वतंत्र हैं जो कुछ के लिए कसम खाएंगे।


2
+1 क्रॉस-प्लेटफ़ॉर्म स्क्रिप्टिंग भाषाओं का उल्लेख करने के लिए (पर्ल मेरा पसंदीदा है, और मुझे पता है कि पायथन वर्षों से लोकप्रियता हासिल कर रहा है)।
रैंडॉल्फ रिचर्डसन

2
पर्ल के लिए +1। यह कई प्लेटफार्मों पर उपयोगी है और इसमें कुछ विंडोज-विशिष्ट मॉड्यूल हैं।
RedGrittyBrick

1
मुझे लगता है कि TinyPerl बहुत अधिक निर्भरता के साथ सरल पर्ल स्क्रिप्ट एम्बेड करने के लिए एक बहुत ही उपयोगी तरीका है। यह विंडोज पर एक छोटे से EXE फ़ाइल को संकलित करेगा। smallperl.sourceforge.net
बेनोइट

4

मुझे लगता है कि विंडोज के लिए आधिकारिक स्क्रिप्टिंग "भाषा" (और Win95 के बाद से) होगी विंडोज स्क्रिप्ट होस्ट

तकनीकी रूप से, WSH स्वयं के लिए एक भाषा नहीं है, बल्कि एक वातावरण (GUI नहीं) है, जो COM इंटरफेस को उजागर करता है , जिससे आप OS चीजों को करने के लिए (लगभग) जो भी स्क्रिप्टिंग भाषा चाहते हैं, का उपयोग करने की अनुमति दे सकते हैं, यहां तक ​​कि उन चीजों का भी जिनके पास कोई मूल तरीका नहीं है। भाषा (उदाहरण के लिए, रूबी के पास विंडोज या टीसीएल / टीके में लॉग-इन करने का कोई अंतर्निहित तरीका नहीं है, रन डायल दिखाने का कोई अंतर्निहित तरीका नहीं है)।

आपने कुछ डब्ल्यूएसएफ फाइलें देखी होंगी जिनमें एक फाइल में कई भाषाएं शामिल हो सकती हैं, लेकिन आमतौर पर डब्ल्यूएसएच लिपियों को एक भाषा में लिखा जाता है और उस भाषा के स्क्रिप्टिंग संस्करण के लिए इसी एक्सटेंशन के साथ वितरित किया जाता है (उदाहरण के लिए वीबीएस विजुअलबिसिक स्क्रिप्ट्स, पायस फॉर पियोनस्क्रिप्ट्स, आदि। ।)


[सिहरन तेज होती है], मैं वही लिखता था। आप जानते हैं कि आप IE से मनमानी WSH स्क्रिप्ट चला सकते हैं? वह विचित्र नहीं है। अच्छा लगा कि उन्होंने वेब के लिए अपने एपि को कितना खोल दिया। (अस्वीकरण, यह
निंदक

WSH और IE के बारे में कहानी वास्तव में इतनी सरल नहीं है: msdn.microsoft.com/en-us/library/bb250473(v=vs.85).aspx (सुरक्षा क्षेत्रों के आधार पर प्रतिबंधों का सिर्फ एक उदाहरण) या IE 11 अब भी VBScript का समर्थन नहीं है, विरासत मोड के अलावा अन्य। WSH स्क्रिप्ट को निष्पादित करने के लिए IE पर भरोसा न करें।
जोनास

4

मैं कहूंगा कि AutoIt, यह खिड़कियों पर बहुत तेज और आसान विकास प्रदान करता है और इसके साथ बहुत तंग है। इसका मतलब यह है कि आमतौर पर अन्य भाषाओं में अधिक कोड लेने वाले कार्यों का शाब्दिक रूप से ऑटोिट में एक लाइन में किया जा सकता है। निर्वासन के लिए प्रत्यक्ष संकलन जैसी सुविधाएँ भी बहुत उपयोगी हैं।


Monoceres तरह, मैं का उपयोग AutoIt । यह कुछ ही मिनटों में तेजी से प्रोटोटाइप और परीक्षण अवधारणाओं के लिए बेहद बहुमुखी है। इस बीच, यह स्वचालन के लिए डिज़ाइन किया गया है, जो कि मैं बहुत से लोगों के लिए पॉवर्सशेल का उपयोग कर रहा हूं। इसे आजमाएँ :)
जेम्स

1
AutoIt बहुत अच्छा है, विशेष रूप से UI फ़ंक्शंस के लिए (एक उपयोगकर्ता की तरह काम करता है जैसे डायलॉग बॉक्स में, पुश बटन आदि) लेकिन यह "मुख्य" विंडोज़ स्क्रिप्टिंग भाषा में कॉल करने के लिए एक वास्तविक खिंचाव होगा। इन दिनों मेरे अधिकांश सहकर्मियों (20+ Windows Admins की टीम में) ने भी इसके बारे में नहीं सुना है।
ewall

2

इस प्रश्न में बताई गई अन्य भाषाएं (VbScript, PowerShell, Batch) बहुत लोकप्रिय और समर्थित हैं। यदि आप पहले से ही एक स्क्रिप्टिंग भाषा जानते हैं और इसके साथ सहज महसूस करते हैं - तो किसी भी तरह से।

यदि आप एक नई भाषा चुनने के लिए निवेश करने वाले हैं, तो मैं आपके लिए दो भाषाओं का सुझाव दूंगा, आप जो काम करना चाहते हैं, उस पर निर्भर करता है:

JavaScript (WSH के माध्यम से) - यदि आप विभिन्न ऑटोमेशन ऑब्जेक्ट का उपयोग करके उन्हें इंस्टेंट करके और उनके ऑब्जेक्ट मॉडल में कॉल करना चाहते हैं, तो JavaScript का उपयोग करें। आप Exchange Server से WMI से Office दस्तावेज़ों तक, बहुत अधिक सब कुछ के लिए एक स्वचालन ऑब्जेक्ट बना सकते हैं। Visual Studio (/ x तर्क के साथ) डिबग समर्थन है। साथ ही, जावास्क्रिप्ट में निवेश HTML में उपयोगी साबित होगा।

पर्ल - पर्ल का उपयोग करें यदि आप अन्य प्रोग्राम लॉन्च कर सकते हैं, उनके आउटपुट में हेरफेर कर सकते हैं, नियमित अभिव्यक्ति कर सकते हैं। हालांकि ऐसा लगता है कि यह भाषा वर्तमान में गिरावट में है, यह अभी भी एक बहुत लोकप्रिय है, एक बड़ी सामुदायिक भाषा के साथ बहुत अच्छी तरह से समर्थित है। आपको अन्य सेवाओं के साथ संवाद करने के लिए भी इस भाषा पर विचार करना चाहिए (जरूरी नहीं कि विंडोज), जैसे एंटरप्राइज़ पर एक JIRA, या अमेज़न पर EC2। ईपीआईसी के साथ ग्रहण में डिबगिंग का समर्थन किया जाता है, जो एक अच्छा आईडीई वातावरण (सिंटैक्स रंग, आदि) भी है। CPAN में हर चीज के लिए मॉड्यूल हैं। गैर विंडोज मशीनों पर स्वचालन करने के दौरान पर्ल ज्ञान उपयोगी साबित होगा।


1
पाइथन पर्ल के लिए एक बहुत अच्छा विकल्प है, हालाँकि आप जिन चीज़ों के लिए दो का उपयोग करेंगे, वे बहुत समान हैं
Phoshi

1

शुरुआती दिनों में, शुद्ध विंडोज 7 और सर्वर 2008 R2 के साथ कॉर्पोरेट वातावरण में बैच के बाद VBScript थी, नई स्क्रिप्टिंग भाषा पॉवर्सशेल बहुत अधिक ध्यान आकर्षित कर रही है।


आपको लगता है कि पावरशेल को लेने की उत्सुक इच्छा व्यक्त की जा रही है। क्या यह मान लेना उचित होगा कि आप चाहते हैं कि यह "पॉवरशेल" हो? ; -डॉ
रैंडॉल्फ रिचर्डसन

मैं vbscript पर हां से पहले शक्तियां बनाता हूं।
ईकेएस

1

यदि आप कुछ पर्ल स्क्रिप्ट लिखने के लिए हैं, तो मैं पर्ल के लिए दूसरा सुझाव देता हूं। जिन लोगों के साथ मैं काम करता हूं, वे सीएलआर स्क्रिप्ट (थोड़ा पुराना) का सफलतापूर्वक उपयोग और अनुशंसा करते हैं , और वेब इंटरैक्शन, iMacros की स्क्रिप्टिंग के लिए


1

यह लगभग कुछ भी हो सकता है, यह निर्भर करता है कि आप क्या करने की कोशिश करते हैं। यह बैच फ़ाइलों और पॉवरशेल से ऑटोहोटकी और सेलेनियम (यदि आपको कुछ GUI संबंधित कार्यों को स्वचालित करने की आवश्यकता है) से भिन्न होगा।

आमतौर पर यह एक सीखने की समस्या नहीं है, अगर आपको कुछ संशोधनों को जोड़ने या पहले से लिखी गई स्क्रिप्ट का समर्थन करने की आवश्यकता है। यदि आपको कुछ नया विकसित करने की आवश्यकता है - आवश्यकताओं के आधार पर भाषा / तरीका चुनें, और जो आप पहले से जानते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.