Windowsは、MS-DOS時代からのBatch言語を持つが、現在のWindows 11では、標準のスクリプト言語としてはWindows PowerShellが付属している。また、過去には、VBScriptや、JavaScriptなどが実行可能となる「Windows Scripting Host」(Windows Script Hostとも)が付属していた(表01)。
Windows 11に標準搭載されているWindows PowerShellは、現行版のVer.5.1で開発が終了している。Microsoftは、後継となる「PowerShell」(頭に「Windows」がないことに注意)への移行を勧めている。今回はWindowsの標準スクリプト言語について見ていくことにしよう。
Batch言語は、MS-DOS/PC-DOSの時代に作られたスクリプト言語だ。command.com、cmd.exeの内部コマンド、外部コマンドを起動し、実行ステータスや環境変数を使ったIF文による条件判断、FOR文による繰り返しなどが利用できる。Batchスクリプトを記述した「.bat」ファイルは、拡張子を省略して実行が可能であるなど、いまだに標準スクリプト言語としての地位を保つ。しかし、1980年台に16 bit CPUのCLI用に作られたこともあり、言語としてはそれほど強力でもない。
Windows Scripting Host(WSH)は、1996年にWindows 95のアップデート機能の1つとして搭載が始まった。そもそも、WSHは、特定のスクリプト言語インタプリタではなく、さまざまなスクリプト言語をWindowsやアプリケーションに組み込むための仕組みだった。同時に、Windows 95で全面的に採用されたCOMコンポーネントを扱うための仕組みを提供した。これにより、WSH標準で動作するVBScriptとJavaScriptは、COMコンポーネントの「グルー言語」として動作した。
言語として基本的な機能を備えてはいるが、言語ライブラリとしては、ファイルや正規表現などごく一部のみが提供された。
なお、WindowsのExplorerが扱うファイル・ショートカットの作成は、現在では、WSH経由でしかAPIが提供されていない。
3番目のWindowsスクリプト言語であるPowerShellは、monadのコードネームでWindows Vista用として2006年に発表された。新しいスクリプト言語が必要となったのは、1つには、Windows Serverを含め、Windows自体が高度化し、その管理のためには、Unix/Linuxのsh相当の高度なシェルを搭載する必要があったからだ。また、1990年台末に発表した「.NET構想」で提供される「.NET Framework」を扱うことができるスクリプト言語が必要だったことも理由である。こうした背景から当初のWindows PowerShellは、.NET Frameworkで開発が行われた(表02)。
Windows PowerShellとは、別にPowerShell(当初はPowerShell Coreと呼ばれた)が作られたのは、.NET側の事情による。2014年にMicrosoftは、.NET Frameworkをベースにオープンソース版を開発、これを「.NET Core」と呼んだ。これをベースに作られたのがPowerShell Coreである。その後、.NET Coreは、.NETと名称を変え、PowerShell CoreもPowerShellと表記されるようになった。.NET Coreは、オープンソースで、Windowsだけでなく、Linuxなどの他のプラットフォームにも移植が行われ、PowerShellもWindows、Linux、macOSで動作するようになった。
.NETは、現在、定期的にバージョンアップしており、PowerShellもこれに応じてバージョンアップする。Windows PowerShellは互換性のため、.NET Frameworkに止まり、PowerShellは、.NETのバージョンアップに応じて変化していく。
ただし、.NETは、.NET Frameworkの機能をすべて継承しているわけではなく、PowerShellも、Windows PowerShellの機能をすべて継承しているわけではない。一部非互換の部分もあるのだが、PowerShellには最新の.NETに対応しているというメリットがある。
Windows 11には、標準システム・スクリプトシステムとしてWindows PowerShell Ver.5.1が付属しているが、Ver.5.1はすでに開発が終了しており、多少でもコマンドラインを利用するならPowerShell 7をインストールし、標準ターミナルをWindowsターミナルとすべきだろう。
今回のタイトルネタは、Neil R. Jonesの“The Plannet of the Double Sun(1967)”(邦題 二重太陽系死の呼び声。1972年、ハヤカワ文庫SF)である。筆者が最初に買ったSF文庫本がこれ。妙に表紙のイラストに惹かれた記憶がある。生身の脳が機械の体を得る、今でも繰り返し使われるパターンの元祖と言える。今から見ると「拙い」部分もあるのだが、1960年台、70年台には、誰も見たことがない世界だった。このあたりの作品が軒並み絶版なのが残念。
編集部おすすめ