Windowsではどのスクリプト言語が便利ですか?[閉まっている]


48

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


10
あなたが書いたものの背後に潜んでいる興味深い質問を見ることができるので、私は+1を与えました。とはいえ、「メイン」はあいまいな単語を選択して、あいまいにならないように編集する必要があると思います。おそらく、「最も一般的に使用される」、「ベストサポート」、または「推奨」のいずれかになります。SuperUserへようこそ!:)
ブレナンビンセント

2
@Brennan Vincent:それは素晴らしい提案ですが、この時点で「メイン」という言葉を変更すると、答えの精神が損なわれる可能性があります。あなたのコメントはこの問題について多くのことを物語っていると思うし、質問はそのまま残した方が良いと思う。(ところで、あなたのために+1。)
ランドルフリチャードソン

1
現時点では、この質問は主観的なカテゴリーに分類されると思います。しかし、ブレナンが示唆するように、言葉遣いを少し修正すると、それは非常に興味深いコミュニティwikiエントリになる可能性があると思います。
ジョーテイラー

1
私にとっても主観的です。スクリプト言語の場合、「メイン」または「最良」または「優先」は、達成されている特定のタスク、および個人のスキルと経験に基づいて異なります。
イスジ

3
:私が意味するように質問を取るものですネイティブのWindows用のスクリプト言語は、今日?つまり、どのようなスクリプト言語が組み込まれているフックと機能OSにAPIを必要とは対照的に、ActiveXの、など物事を成し遂げるために?
Synetech

回答:


36
  1. パワーシェル
  2. Windowsスクリプティングホスト
    。VBScript
    b。JScript
  3. バッチファイル

PowerShell(v2.0)

Windows 7およびServer 2008の時点では、Windowsに同梱されているPowerShellを検討することは合理的です。また、LyncやExchangeなどのサーバーソフトウェアを管理することも基本的です。利用可能な機能のリストは増え続けています。詳細については、スクリプトセンターを参照してください。

Windowsスクリプトホスト

Windows Script Host(WSH)は、技術的にはActiveXスクリプトエンジンのスクリプトホストです。VBScriptとJScript(MicrosoftのJavaScriptの実装)は、デフォルトでインストールされる2つのエンジンです。Perl、PHP、Rubyなど、他の多くの製品がオープンソースとして利用可能です。

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
Windows 7およびServer 2008に関しては、
Powershell

@sshowは2.0について具体的であることに同意します。
Nick Josevski

「彼らはイントロを必要としません。」しかし、インクルードはない ... extroを必要とする
グレン・ジャックマン

16

私はまだWindows 7でもDOSバッチファイルを作成します。ほとんどのタスクでは、これはまだ非常にうまく機能します。 10年以上前に利用できなかったオプションと機能)。

私にとって、DOSバッチファイルは依然としてWindowsの主要なスクリプト言語ですが(確かに伝統的です)、誰もが異なるニーズと好みを持っています。DOSバッチファイルにはできないことが多くあり(スクリプト言語にも制限があります)、これに遭遇したまれな機会に、他のオプションが何であるかを調べます(多くの場合、Perlである場合があります。小さなプログラムまたはアプリケーション全体を記述することです)。

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


10
「メイン」スクリプト言語で「最も古く、最も広く使用されている」ことを意味する場合、これは間違いなく正しい答えです。しかし、cmd本当に怪物であり、私が今までに使用する不幸を経験した最悪のシェルスクリプト言語です。
JSBձոգչ11年

3
他のバージョンのWindowsでスクリプトを使用する必要がある場合も、バッチファイルを使用します。Win7 / Server 2008のみを扱う場合は、PowerShellが最適です。
jtreser

5
+1私は、MSがpowershellになりたいと思っていることを知っていますが、今のところ、誰かが「windows」を実行しているスクリプトを送信したい場合、DOSバッチファイルを送信する必要があります。PSは特定のタスク用の特定のバージョンのWindowsに最適であり、多くのパワーを発揮しますが、バッチファイルは普遍的です。
アランジャクソン

現在働いている銀行などの一部の企業では、Execution-policyによりPSスクリプトが実行されないようになっています。したがって、私はPSスクリプトを翻訳するバッチを学んでいます。そのため、バッチがまだ必要な状況がいくつかあります
...-T_D

私は2011年にあなたの答えに同意しましたが、Windows 10 Creators Updateでは、MicrosoftはWin + Xを押し、スタートメニューに「cmd」と入力し、エクスプローラーで右クリックするときにCtrlを押したときにPowerShellをデフォルトにしました。そこで、Windows 10 Creators Update以降のPowershellをWindowsの既定のスクリプト言語、およびBAT / CMDレガシースクリプトと見なします。
ジョナス

10

それはあなたが尋ねる人に依存します。バッチを決して残さない人もいれば、vbscriptを愛する人、PowerShellを愛する人、AutoItなどがあります。それから、PythonやPerlのようなプラットフォームに依存しないものもあります。


2
クロスプラットフォームスクリプト言語に言及するための+1(Perlが私のお気に入りであり、Pythonも長年にわたって人気を集めていることを知っています)。
ランドルフリチャードソン

2
Perlの場合は+1。多くのプラットフォームで役立ち、Windows固有のモジュールがいくつかあります。
RedGrittyBrick

1
TinyPerlは、依存関係が多すぎない単純なPerlスクリプトを埋め込むための非常に便利な方法であると付け加えます。Windowsで小さなEXEファイルにコンパイルされます。tinyperl.sourceforge.net-
ブノワ

4

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

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

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


[震えが強まる]、私はそれを書くのに使用しました。IEから任意のWSHスクリプトを実行できることを知っていますか?趣味じゃないですか。彼らがどのようにAPIをウェブに公開しているのでしょうか。(免責事項、このシニシズムの日付はXP-SP3です)
ThorSummoner

WSHとIEについての話はそれほど単純ではありません。msdn.microsoft.com / en-us / library / bb250473v = vs.85).aspx(セキュリティゾーンに応じた制限の一例)そしてIE 11はそうではありません。レガシーモード以外では、VBScriptもサポートしていません。IEに依存してWSHスクリプトを実行しないでください。
ジョナス

4

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


モノセレスのように、私はAutoItを使用します。数分でラピッドプロトタイピングとテストのコンセプトを実現する非常に汎用性の高い製品です。その中でも、自動化のために設計されており、Powershellを使用している多くの人が見ているものです。試してみてください:)
ジェームズ

1
AutoItは、特にUI関数(ユーザーがダイアログボックスに入力する、ボタンを押すなど)にとっては非常にクールですが、「メイン」のWindozeスクリプト言語で呼び出すのは非常に面倒です。最近(20人以上のWindows管理者のチームで)私の同僚のほとんどは、そのことを聞いていません。
ewall

2

この質問で指摘されている他の言語(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以外のマシンで自動化を行う必要がある場合に役立ちます。


1
Pythonはperlの非常に優れた代替手段ですが、この2つを使用するものはほとんど同じです
-Phoshi

1

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


PowerShellが引き継ぐことを切望しているようです。PowerShellに「なりたい」と仮定するのは公平でしょうか?;-D
ランドルフリチャードソン

はい、vbscriptよりもpowershellの方が好きです。
EKS

1

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


1

あなたが自動化しようとするものに応じて、それはほとんど何でもありえます。バッチファイルやPowerShellからオートホットキーやSeleniumまでさまざまです(GUI関連のタスクを自動化する必要がある場合)。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.