web-dev-qa-db-ja.com

Windowsではどのスクリプト言語が便利ですか?

Windowsの自動化に役立つスクリプト言語は何ですか?

48
abc123
  1. パワーシェル
  2. Windowsスクリプトホスト
    a。 VBScript
    b。 JScript
  3. バッチファイル

PowerShell(v2.0)

Windows 7およびServer 2008では、PowerShellをWindowsに同梱することを検討するのが妥当です。また、LyncやExchangeなどのサーバーソフトウェアを管理することも、それらに使用できるコマンドのセット全体があるため、基本的です。利用できる機能のリストが増えています。詳細については、 スクリプトセンター を参照してください。

Windowsスクリプトホスト

Windowsスクリプトホスト(WSH)は、技術的にはActiveXスクリプトエンジンのスクリプトホストです。 VBScriptとJScript(MicrosoftによるJavaScriptの実装)は、デフォルトでインストールされる2つのエンジンです。 Perl、PHPおよびRubyを含む他の多くのオープンソースとして利用できます。

VBScript

VB6やVB.NETと同様の構文を使用すると、VBScriptは.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");
}

コマンドバッチファイル

もちろん、古き良きバッチファイルがあります。彼らはイントロを必要としません。

36
Nick Josevski

私はまだWindows 7でもDOSバッチファイルを書き込みます。ほとんどのタスクで、これは非常にうまく機能し、操作も非常に簡単です(また、「FOR」などのDOSコマンドの多くは、時間とともに改善され、より多くの機能を提供します。 10年以上前に利用できなくなったオプションと機能)。

私にとって、DOSバッチファイルはWindowsの主要なスクリプト言語です(確かに伝統的です)が、誰もが必要とする設定は異なります。 DOSバッチファイルで実行できないことはたくさんあります(スクリプト言語も制限を課す可能性があります)。これに遭遇したまれな状況では、他のオプションを調べます(多くの場合、Perlですが、場合によっては小さなプログラムまたはアプリケーション全体を書くことです)。

達成する必要があることを理解することは、使用するツールを決定する上で非常に重要なステップです。ツールに精通していることは、オプションを制限する可能性があるもう1つの重要な側面です。学習するスクリプティング[またはプログラミング]言語を決定しようとしている場合、うまくいけばこれが役立つでしょう。

16

それはあなたが尋ねる人に依存します。バッチを離れることのない人もいれば、vbscriptが好きな人もいれば、PowerShellが好きな人もいれば、AutoItのような人もいます。次に、PythonやPerlのようなプラットフォームに依存しないものがあります。Perlは、すべてのために誓います。

10
MaQleod

AutoItと言えば、Windowsで非常に高速かつ簡単に開発でき、非常に緊密に連携しています。これは、通常、他の言語ではかなり多くのコードを必要とするタスクを、autoitの文字通り1行で実行できることを意味します。 exeへの直接コンパイルなどの機能も非常に便利です。

4
monoceres

Windowsの公式スクリプトの「言語」は(Win95以降) Windows Script Host になると思います。

技術的には、 [〜#〜] wsh [〜#〜] はそれ自体が言語ではなく、 COMを公開する インターフェイスを使用できる環境(GUIではない)です(ほぼ)OSのことを行うために、言語にネイティブの方法が組み込まれていないものも含めて、どのスクリプト言語も必要です(たとえば、Rubyには、Windowsにログインする組み込みの方法がありません。 TCL/TKには、[実行]ダイアログを表示する組み込みの方法はありません。

1つのファイルに複数の言語を含めることができるWSFファイルを見たことがあるかもしれませんが、通常、WSHスクリプトは1つの言語で記述され、その言語のスクリプトバージョンに対応する拡張子で配布されます(例:VisualBasicスクリプトのVBS、PythonScriptのPYSなど)。 。)

4
Synetech

この質問で指摘されている他の言語(VbScript、PowerShell、Batch)は非常に人気があり、サポートされています。既にスクリプト言語を知っていて、満足している場合は-とにかくそれを使ってください。

新しい言語を習得することに投資しようとしている場合は、2つの言語をお勧めします。これは、実行しようとしている仕事によって異なります。

JavaScript(WSH経由) -さまざまなオートメーションオブジェクトをインスタンス化し、それらのオブジェクトモデルを呼び出して使用する場合は、JavaScriptを使用します。 ExchangeサーバーからWMI、Officeドキュメントまで、ほとんどすべてのオートメーションオブジェクトを作成できます。 Visual Studio(/ x引数付き)ではデバッグがサポートされています。また、JavaScriptへの投資はHTMLで役立つことがわかります。

Perl -他のプログラムを起動し、それらの出力を操作し、正規表現を実行できる場合は、Perlを使用します。この言語は現在衰退しているようですが、それは非常に人気があり、大きなコミュニティ言語で非常によくサポートされています。企業のJIRAやAmazonのEC2など、他のサービス(Windowsとは限りません)と通信するために、この言語も考慮する必要があります。デバッグはEPICを備えたEclipseでサポートされており、これもIDE環境(構文の色分けなど)です)です。CPANにはすべてのモジュールがあります。Perlの知識は、 Windows以外のマシンで自動化を行います。

2
Uri

自動化しようとするものに応じて、ほとんど何でもかまいません。バッチファイルやPowerShellからautohotkeyやSeleniumまでさまざまです(GUI関連のタスクを自動化する必要がある場合)。

いくつかの変更を追加したり、すでに記述されているスクリプトをサポートしたりする必要がある場合は、通常、学習することは問題ではありません。新しいものを開発する必要がある場合-要件、およびすでに知っていることに基づいて言語/方法を選択します。

1
Konstantin

いくつかのPerlスクリプトを作成する場合は、Perlの2番目の推奨事項です。私が一緒に仕事をしている人は、 CLR Script (少し古い)をうまく使用して推奨しており、Webインタラクションのスクリプト作成には iMacros

1
Jamie Cox

初期には、VBScriptに続いてBatchがありました。純粋なWindows 7とServer 2008 R2を備えた企業環境では、新しいスクリプト言語Powershellが大きな注目を集めています。

1
EKS