Bahasa skrip apa yang berguna di Windows? [Tutup]


48

Bahasa skrip apa yang berguna untuk otomatisasi Windows?


10
Saya memberi +1 karena saya dapat melihat pertanyaan menarik yang mengintai di balik apa yang Anda tulis. Meskipun demikian, saya pikir "utama" adalah pilihan kata yang tidak menguntungkan yang harus Anda edit agar tidak terlalu kabur. Mungkin "paling umum digunakan", "didukung terbaik", atau "disarankan", tergantung pada maksud Anda. Selamat datang di SuperUser! :)
Brennan Vincent

2
@ Brian Vincent: Itu saran yang bagus, tetapi mengubah kata "utama" pada titik ini dapat mengurangi semangat jawaban. Saya pikir komentar Anda berbicara banyak tentang masalah ini, dan pertanyaannya lebih baik dibiarkan apa adanya. (+1 untuk Anda untuk itu, by the way.)
Randolf Richardson

1
Saat ini saya pikir pertanyaan ini termasuk dalam kategori subyektif. Namun dengan sedikit modifikasi kata-kata seperti yang disarankan oleh Brennan, saya pikir ini bisa menjadi entri wiki komunitas yang cukup menarik.
Joe Taylor

1
Terlihat subyektif bagi saya juga. Untuk bahasa scripting, "utama" atau "terbaik" atau "disukai" akan berbeda berdasarkan tugas tertentu yang sedang diselesaikan, dan keterampilan dan pengalaman individu.
Iszi

3
Saya mengambil pertanyaan yang dimaksud: apa bahasa scripting asli untuk Windows saat ini ?, yaitu, bahasa scripting apa yang memiliki kait dan fungsi bawaan ke dalam OS yang bertentangan dengan yang membutuhkan API, ActiveX, dll. Untuk menyelesaikan sesuatu?
Synetech

Jawaban:


36
  1. PowerShell
  2. Host Scripting Windows
    a. VBScript
    b. JScript
  3. File Batch

PowerShell (v2.0)

Pada Windows 7 dan Server 2008 masuk akal untuk mempertimbangkan PowerShell karena disertakan bersama Windows, dan juga penting untuk mengelola perangkat lunak server seperti Lync dan Exchange karena ada seluruh rangkaian perintah yang tersedia untuk mereka. Ada semakin banyak daftar fitur yang tersedia, lihat Pusat Skrip untuk detailnya.

Host Scripting Windows

Windows Script Host (WSH) secara teknis adalah host skrip untuk ActiveX Scripting Engine. VBScript dan JScript (implementasi Microsoft JavaScript) adalah dua mesin yang diinstal secara default. Banyak lainnya tersedia sebagai sumber terbuka, termasuk Perl, PHP dan Ruby.

VBScript

Menggunakan sintaksis yang mirip dengan VB6 dan VB.NET, VBScripts tidak memiliki akses yang mudah ke kelas .NET (Powershell ditulis pada .NET sehingga memiliki akses ke semua fungsi .NET). VBScript sebagian besar memanfaatkan layanan WMI dan objek yang diekspos.

Contoh: Ini menciptakan titik Pulihkan.

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

Anda juga dapat menulis skrip yang sama menggunakan 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");
}

File Perintah Batch

Tentu saja ada File Batch yang bagus. Mereka tidak perlu intro.


7
Sedangkan untuk Windows 7 dan Server 2008, itu akan menjadi Powershell 2.0
sshow

@shshow setuju untuk lebih spesifik tentang 2.0
Nick Josevski

"Mereka tidak perlu intro." Tetapi memang perlu ekstro ...
glenn jackman

16

Saya masih menulis file batch DOS, bahkan di Windows 7. Untuk sebagian besar tugas, ini masih bekerja dengan cukup baik, dan sangat mudah untuk bekerja dengannya (juga, banyak perintah DOS seperti "UNTUK" telah ditingkatkan dari waktu ke waktu dan memberikan lebih banyak opsi dan fungsionalitas yang tidak tersedia lebih dari satu dekade yang lalu).

Bagi saya, file batch DOS masih menjadi bahasa scripting utama untuk Windows (tentu tradisional), tetapi setiap orang memiliki kebutuhan dan preferensi yang berbeda. Ada banyak hal yang tidak dapat dilakukan oleh file batch DOS (bahasa scripting dapat menimbulkan batasan juga), dan untuk kesempatan langka ketika saya menjumpai ini, saya kemudian melihat apa pilihan saya yang lain (seringkali itu Perl, atau kadang-kadang bisa adalah dengan menulis program kecil atau seluruh aplikasi).

Memahami apa yang perlu Anda capai adalah langkah yang sangat penting dalam memutuskan alat mana yang akan digunakan. Keakraban dengan alat adalah aspek penting lain yang dapat membatasi pilihan Anda. Jika Anda mencoba memutuskan bahasa scripting [atau pemrograman] mana yang ingin dipelajari, semoga ini akan membantu Anda.


10
Jika dengan bahasa skrip "utama" yang Anda maksud "tertua dan paling banyak digunakan", ini jelas jawaban yang tepat. Namun, cmdbenar-benar adalah keburukan, mudah bahasa scripting shell TERBURUK yang pernah saya miliki kemalangan untuk digunakan.
JSB ձոգչ

3
Saya juga menggunakan file batch ketika skrip perlu digunakan pada versi Windows lainnya. Jika Anda hanya berurusan dengan Win7 / Server 2008 maka PowerShell adalah cara untuk pergi.
jtreser

5
+1 Saya tahu MS ingin PowerShell untuk melakukannya , tetapi untuk saat ini jika Anda ingin mengirim seseorang skrip yang menjalankan "windows", Anda harus mengirim mereka file batch DOS. PS sangat bagus untuk versi windows tertentu untuk tugas-tugas tertentu dan mereka mengekspos banyak daya, tetapi file batch bersifat universal.
Alan Jackson

Di beberapa perusahaan misalnya bank tempat saya bekerja saat ini, kebijakan Eksekusi mencegah skrip PS dieksekusi. Jadi saya belajar batch untuk menerjemahkan skrip PS saya. Jadi ada beberapa situasi di mana Batch masih diperlukan ...
T_D

Saya setuju dengan jawaban Anda pada tahun 2011, tetapi dengan Pembaruan Kreator Windows 10, Microsoft menjadikan PowerShell sebagai default ketika menekan Win + X, mengetik 'cmd' di Start Menu, dan menahan Ctrl ketika mengklik kanan di Explorer. Jadi saya sekarang mempertimbangkan Powershell bahasa scripting default untuk Windows, sejak Windows 10 Creators Update, dan script legacy BAT / CMD.
Jonas

10

Itu tergantung pada siapa Anda bertanya. Beberapa tidak akan pernah meninggalkan batch, beberapa cinta vbscript beberapa cinta powershell, yang lain seperti AutoIt. Lalu ada platform yang independen seperti Python dan Perl yang beberapa akan bersumpah untuk semuanya.


2
+1 untuk menyebutkan bahasa skrip lintas platform (Perl adalah favorit saya, dan saya tahu bahwa Python telah mendapatkan popularitas selama bertahun-tahun juga).
Randolf Richardson

2
+1 untuk Perl. Ini berguna pada banyak platform dan memiliki beberapa modul khusus Windows.
RedGrittyBrick

1
Saya akan menambahkan bahwa TinyPerl adalah cara yang sangat berguna untuk menanamkan skrip Perl sederhana dengan dependensi tidak terlalu banyak. Ini akan dikompilasi ke file EXE kecil di Windows. tinyperl.sourceforge.net
Benoit

4

Saya kira "bahasa" scripting resmi untuk Windows adalah (dan telah sejak Win95) Host Script Windows .

Secara teknis, WSH bukan bahasa untuk dirinya sendiri, melainkan lingkungan (bukan GUI) yang mengekspos antarmuka COM untuk memungkinkan Anda menggunakan (hampir) bahasa skrip apa pun yang Anda inginkan, untuk melakukan hal-hal OS, bahkan hal-hal yang tidak memiliki cara bawaan dibangun ke dalam bahasa (misalnya, Ruby tidak memiliki cara bawaan untuk masuk ke Windows atau TCL / TK tidak memiliki cara bawaan untuk menampilkan dialog Run).

Anda mungkin telah melihat beberapa file WSF yang dapat menyertakan banyak bahasa dalam satu file, tetapi biasanya skrip WSH ditulis dalam satu bahasa dan didistribusikan dengan ekstensi yang sesuai dengan versi skrip bahasa itu (misalnya VBS untuk skrip VisualBasic, PYS untuk PythonScript, dll. .)


[Menggigil mengintensifkan], saya biasa menulis itu. Anda tahu Anda dapat menjalankan skrip WSH sewenang-wenang dari IE? Bukankah itu aneh. Bagus bagaimana mereka membuka begitu banyak api ke web. (Penafian, sinisme ini tertanggal oleh XP-SP3)
ThorSummoner

Kisah tentang WSH dan IE tidak sesederhana itu: msdn.microsoft.com/en-us/library/bb250473(v=vs.85).aspx (hanya satu contoh pembatasan, tergantung pada zona keamanan) Dan IE 11 tidak bahkan tidak lagi mendukung VBScript, selain dalam mode lawas. Jangan mengandalkan IE untuk menjalankan skrip WSH.
Jonas

4

Saya akan mengatakan AutoIt, ia memberikan pengembangan yang sangat cepat dan mudah pada windows dan sangat erat dengan itu. Ini berarti bahwa tugas-tugas yang biasanya mengambil kode agak banyak dalam bahasa lain dapat dilakukan secara harfiah satu baris di autoit. Fitur seperti kompilasi langsung ke exe juga sangat berguna.


Seperti monoceres, saya menggunakan AutoIt . Ini sangat serbaguna bahkan untuk prototipe cepat dan konsep pengujian dalam beberapa menit. Di antara itu, ini dirancang untuk otomatisasi, yang saya lihat banyak orang menggunakan Powershell. Cobalah :)
James

1
AutoIt cukup keren, terutama untuk fungsi UI (bertindak seperti pengguna mengetik ke kotak dialog, menekan tombol, dll) tetapi itu akan menjadi panggilan nyata dalam bahasa skrip Windoze "utama". Saat ini sebagian besar kolega saya (dalam tim yang terdiri dari 20 + Admin Windows) bahkan belum pernah mendengarnya.
ewall

2

Bahasa lain yang ditunjukkan dalam pertanyaan ini (VbScript, PowerShell, Batch) sangat populer dan didukung. Jika Anda sudah tahu bahasa scripting dan merasa nyaman dengan - dengan cara apa pun pergi dengan itu.

Jika Anda akan berinvestasi dalam mengambil bahasa baru, saya sarankan dua bahasa untuk Anda, tergantung pada pekerjaan yang Anda coba lakukan:

JavaScript (via WSH) - gunakan JavaScript jika Anda ingin menggunakan berbagai Objek Otomatisasi dengan membuat instance, dan memanggil ke dalam Model Objek mereka. Anda dapat membuat Objek Otomasi untuk hampir semua, mulai dari Exchange server hingga WMI hingga dokumen Office. Ada dukungan debug dengan Visual Studio (dengan argumen / x). Juga, investasi dalam JavaScript akan terbukti bermanfaat dalam HTML.

Perl - gunakan Perl jika Anda dapat meluncurkan program lain, memanipulasi outputnya, melakukan ekspresi reguler. Meskipun tampaknya bahasa ini sedang dalam penurunan, masih sangat populer, sangat didukung dengan bahasa komunitas yang besar. Anda juga harus mempertimbangkan bahasa ini untuk berkomunikasi dengan layanan lain (tidak harus Windows), seperti JIRA di perusahaan, atau EC2 di Amazon. Debugging didukung dalam gerhana dengan EPIC, yang juga merupakan lingkungan IDE yang baik (pewarnaan sintaksis, dll.). Ada modul di CPAN untuk semuanya. Pengetahuan Perl akan terbukti bermanfaat ketika harus melakukan otomatisasi pada mesin non Windows.


1
Python adalah alternatif yang sangat baik untuk perl, meskipun hal-hal yang Anda akan gunakan untuk keduanya cukup identik
Phoshi

1

Pada hari-hari awal, ada VBScript diikuti oleh Batch, di lingkungan perusahaan dengan Windows 7 dan Server 2008 R2 murni bahasa scripting baru Powershell meningkatkan banyak perhatian.


Anda tampaknya menyatakan keinginan kuat untuk mengambil alih PowerShell. Apakah adil untuk berasumsi bahwa Anda "menginginkannya" PowerShell? ;-D
Randolf Richardson

Saya lebih suka PowerShell daripada VBScript ya.
EKS

1

Saya merekomendasikan rekomendasi untuk Perl, jika Anda ingin menulis beberapa skrip Perl. Orang yang bekerja dengan saya telah berhasil menggunakan dan merekomendasikan CLR Script (agak lama), dan untuk scripting interaksi web, iMacros


1

Bisa jadi hampir apa saja, tergantung apa yang Anda coba otomatisasi. Ini akan bervariasi dari file batch dan PowerShell ke autohotkey dan Selenium (jika Anda perlu mengotomatisasi beberapa tugas terkait GUI).

Biasanya bukan masalah untuk mempelajarinya, jika Anda perlu menambahkan beberapa modifikasi atau dukungan skrip yang sudah ditulis. Jika Anda perlu mengembangkan sesuatu yang baru - pilih bahasa / cara berdasarkan persyaratan, dan apa yang sudah Anda ketahui.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.