ภาษาสคริปต์ใดที่มีประโยชน์สำหรับระบบอัตโนมัติของ Windows
ภาษาสคริปต์ใดที่มีประโยชน์สำหรับระบบอัตโนมัติของ Windows
คำตอบ:
ตั้งแต่ Windows 7 และ Server 2008 มันสมเหตุสมผลที่จะพิจารณา PowerShell เมื่อมันมาพร้อมกับ Windows และยังเป็นพื้นฐานในการจัดการซอฟต์แวร์เซิร์ฟเวอร์เช่น Lync และ Exchange เนื่องจากมีชุดคำสั่งทั้งหมดที่ใช้ได้สำหรับพวกเขา มีรายการคุณสมบัติที่เพิ่มขึ้นให้ดูที่Script Centerสำหรับรายละเอียด
Windows Script Host (WSH) เป็นโฮสต์การเขียนสคริปต์สำหรับ ActiveX Scripting Engines VBScript และ JScript (การใช้งาน JavaScript ของ Microsoft) เป็นเอ็นจิ้นสองตัวที่ติดตั้งโดยค่าเริ่มต้น มีอีกหลายรายการที่เป็นโอเพนซอร์ซรวมถึง Perl, PHP และ Ruby
การใช้ไวยากรณ์ที่คล้ายกันกับ 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
คุณยังสามารถเขียนสคริปต์เดียวกันโดยใช้ 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");
}
แน่นอนว่ามีไฟล์ Batch ที่ดี พวกเขาไม่ต้องการคำแนะนำ
ฉันยังคงเขียนไฟล์แบตช์ DOS แม้ใน Windows 7 สำหรับงานส่วนใหญ่ก็ยังใช้งานได้ดีและมันก็ใช้งานได้ง่ายมาก (เช่นกันคำสั่ง DOS หลายอย่างเช่น "FOR" ได้รับการปรับปรุงตลอดเวลาและให้มากกว่านี้ ตัวเลือกและฟังก์ชั่นการใช้งานที่ไม่สามารถใช้ได้นานกว่าทศวรรษที่ผ่านมา)
สำหรับฉันแล้วไฟล์แบตช์ DOS ยังคงเป็นภาษาสคริปต์หลักสำหรับ Windows (แน่นอนเป็นแบบดั้งเดิม) แต่ทุกคนมีความต้องการและความต้องการที่แตกต่างกัน มีหลายสิ่งที่ไฟล์แบทช์ DOS ไม่สามารถทำได้ (ภาษาสคริปต์สามารถสร้างข้อ จำกัด ได้เช่นกัน) และสำหรับโอกาสที่หาได้ยากซึ่งฉันได้พบสิ่งนี้ฉันจึงดูว่าตัวเลือกอื่น ๆ ของฉันคืออะไร (มักเป็น Perl หรือบางครั้งก็ทำได้ เป็นการเขียนโปรแกรมขนาดเล็กหรือแอปพลิเคชั่นทั้งหมด)
การทำความเข้าใจกับสิ่งที่คุณต้องทำให้สำเร็จเป็นขั้นตอนที่สำคัญมากในการตัดสินใจเลือกเครื่องมือที่จะใช้ ความคุ้นเคยกับเครื่องมือเป็นอีกสิ่งสำคัญที่สามารถ จำกัด ตัวเลือกของคุณ หากคุณกำลังพยายามตัดสินใจว่าจะเรียนรู้ภาษาสคริปต์ใด [หรือโปรแกรม] หวังว่าสิ่งนี้จะเป็นประโยชน์กับคุณ
cmd
จริงๆแล้วมันเป็นสิ่งที่น่าประหลาดใจจริงๆคือภาษาสคริปต์เชลล์ที่แย่ที่สุดที่ฉันเคยเจอมา
ขึ้นอยู่กับว่าคุณถามใคร บางคนจะไม่ทิ้งชุดความรักบางคน vbscript บางความรักพลังนรกคนอื่น ๆ เช่น AutoIt จากนั้นมีแพลตฟอร์มอิสระเช่น Python และ Perl ที่บางคนจะสาบานสำหรับทุกสิ่ง
ฉันคิดว่าสคริปต์“ภาษา” อย่างเป็นทางการสำหรับ Windows จะเป็น (และได้รับตั้งแต่ Win95) สคริปต์ของ Windows โฮสต์
ในทางเทคนิคWSHไม่ใช่ภาษาสำหรับตัวเอง แต่เป็นสภาพแวดล้อม (ไม่ใช่ GUI) ที่แสดง COMอินเตอร์เฟสเพื่อให้คุณใช้ (เกือบ) ภาษาสคริปต์ใด ๆ ที่คุณต้องการเพื่อทำสิ่งต่าง ๆ ใน OS แม้แต่สิ่งที่ไม่มีวิธีดั้งเดิมในตัว ภาษา (ตัวอย่างเช่น Ruby ไม่มีวิธีการลงชื่อเข้าใช้ Windows ในตัวหรือ TCL / TK ไม่มีวิธีแสดงข้อความโต้ตอบในตัว)
คุณอาจเห็นไฟล์ WSF บางไฟล์ซึ่งสามารถรวมหลายภาษาในไฟล์เดียว แต่โดยปกติแล้วสคริปต์ WSH จะถูกเขียนในภาษาเดียวและกระจายด้วยส่วนขยายที่สอดคล้องกับเวอร์ชันสคริปต์ของภาษานั้น (เช่น VBS สำหรับสคริปต์ VisualBasic, PYS สำหรับ PythonScript ฯลฯ .)
ฉันจะบอกว่า AutoIt มันให้การพัฒนาที่ง่ายและรวดเร็วบน windows และมีความแน่นมากควบคู่ไปกับมัน ซึ่งหมายความว่างานที่มักใช้รหัสค่อนข้างมากในภาษาอื่นสามารถทำได้ในอักษรบรรทัดเดียวใน autoit คุณสมบัติต่าง ๆ เช่นการคอมไพล์โดยตรงไปที่ exe ยังมีประโยชน์อย่างมาก
ภาษาอื่น ๆ ที่กล่าวถึงในคำถามนี้ (VbScript, PowerShell, Batch) เป็นที่นิยมและได้รับการสนับสนุน หากคุณรู้ภาษาสคริปต์อยู่แล้วและรู้สึกสบายใจไม่ว่าจะด้วยวิธีใดก็ตาม
หากคุณกำลังจะลงทุนในการเลือกภาษาใหม่ฉันขอแนะนำสองภาษาสำหรับคุณขึ้นอยู่กับงานที่คุณพยายามทำ:
JavaScript (ผ่าน WSH) - ใช้ JavaScript หากคุณต้องการใช้ Object Automation ต่าง ๆ โดยสร้างอินสแตนซ์และเรียกใช้ Object Model ของพวกเขา คุณสามารถสร้าง Automation Object สำหรับทุกอย่างจาก Exchange Server ไปยัง WMI ไปยังเอกสาร Office มีการสนับสนุนการดีบักกับ Visual Studio (ด้วยอาร์กิวเมนต์ / x) นอกจากนี้การลงทุนใน JavaScript จะพิสูจน์ให้เป็นประโยชน์ใน HTML
Perl - ใช้ Perl หากคุณสามารถเปิดโปรแกรมอื่น ๆ จัดการผลลัพธ์ของพวกเขาดำเนินการแสดงออกปกติ แม้ว่าดูเหมือนว่าภาษานี้จะลดลง แต่ก็ยังเป็นภาษาที่ได้รับความนิยมและได้รับการสนับสนุนเป็นอย่างดีด้วยภาษาชุมชนขนาดใหญ่ คุณควรพิจารณาภาษานี้สำหรับการสื่อสารกับบริการอื่น ๆ (ไม่จำเป็นต้องเป็น Windows) เช่น JIRA ในองค์กรหรือ EC2 ใน Amazon การดีบักได้รับการสนับสนุนใน eclipse ด้วย EPIC ซึ่งเป็นสภาพแวดล้อม IDE ที่ดี (การกำหนดสีไวยากรณ์ ฯลฯ ) มีโมดูลใน CPAN สำหรับทุกสิ่ง ความรู้เกี่ยวกับ Perl จะพิสูจน์ว่ามีประโยชน์เมื่อต้องทำระบบอัตโนมัติบนเครื่องที่ไม่ใช่ Windows
ในช่วงแรกมี VBScript ตามมาด้วย Batch ในสภาพแวดล้อมขององค์กรด้วย Windows 7 และ Server 2008 R2 ภาษาสคริปต์ใหม่ Powershell กำลังสร้างความสนใจอย่างมาก
ฉันสองแนะนำสำหรับ Perl ถ้าคุณพร้อมที่จะเขียนสคริปต์ Perl บางอย่าง คนที่ฉันทำงานด้วยประสบความสำเร็จในการใช้งานและแนะนำCLR Script (เก่าไปหน่อย) และสำหรับการโต้ตอบกับเว็บสคริปต์iMacros
อาจเป็นเกือบทุกอย่างขึ้นอยู่กับสิ่งที่คุณพยายามทำให้เป็นอัตโนมัติ มันจะแตกต่างจากแบทช์ไฟล์และ PowerShell เป็น autohotkey และ Selenium (ถ้าคุณต้องการทำงาน GUI ที่เกี่ยวข้องโดยอัตโนมัติ)
โดยปกติแล้วจะไม่มีปัญหาในการเรียนรู้หากคุณต้องการเพิ่มการแก้ไขหรือสนับสนุนสคริปต์ที่เขียนแล้ว หากคุณต้องการพัฒนาสิ่งใหม่ ๆ - เลือกภาษา / วิธีตามความต้องการและสิ่งที่คุณรู้อยู่แล้ว