「プログラムって何?よくコードのサンプルは見るけれど、実際どうやったら動くのかわからない。コーディングして実際にプログラムを動かすプログラミングの一連の流れを知りたい。」というプログラミング初心者の方、あるいはPowerShellを勉強しているというPowerShell入門者の方向け。
プログラミングの流れはたったの3ステップ。PowerShellを使ったプログラミングで解説します。
スポンサーリンク
本記事は下記の5本立てです。
本記事の内容
- 【PowerShell入門】PowerShellとは?
- PowerShellを学ぶメリット、できること
- 【PowerShell入門】簡単3ステップでプログラミングを実行してみよう
- 複数行のPowerShellをコーディングしたい場合
- 保存したファイルから実行するとエラーが出る原因と解決法
【PowerShell入門】PowerShellとは?
まず最初に「PowerShellとは何ぞや?( ゚д゚)ポカーン」を簡単に解説します。
PowerShellはMicrosoftが提供するWindowsシステム管理用のソフトウェアです。
使用言語はPowerShellというスクリプト言語(アプリケーションを作成するための簡易プログラミング言語)。
Windows7以降のOSにデフォルトで入っているので、Windows7以降を利用しているユーザーは誰でも使えます。
PowerShellを学ぶメリット、できること
Windowsの操作をほぼなんでも自動化できることが最大のメリット。
例えば…
- スクショした画像を自動で保存する
- テキストの中にNGワードがないかチェックする
- メールの大量一斉送信
- WindowsUpdateによる再起動と更新プログラムインストールの自動化
などなど。
Windowsを使って業務をしている会社は業務を自動化して効率化できます。
【PowerShell入門】簡単3ステップでプログラミングを実行してみよう
- PowerShellを起動する
- プログラムコードを書く(コーディング)
- プログラムを実行する
たったのこれだけです。
では実際にやってみましょう。
PowerShellを起動する
左下にある『Windowsメニュー』→『Windows PowerShell』→『Windows PowerShell』の順にクリック。
メニューにない場合、見つからない場合は、左下の検索ウィンドウに「PowerShell」と入力すれば出てきます。
クリックすると、PowerShellが起動します。
プログラムコードを書く(コーディング)
簡単なプログラムコードを書いてみましょう。
下記コードをそのままPowerShellに書き込んでみて下さい。
echo "初めてのPowerShellに挑戦!"
『「初めてのPowerShellに挑戦!」と表示せよ。』という命令です。
もっと詳しく解説すると…
『”(ダブルクォーテーション)』”プログラミング”のようにダブルクォーテーションで囲うことで、システムに「これは文字列ですよ」と教えてあげる。
です。
プログラムを実行する
プログラムコードを入力したら、リターンキーを押下します。
すると、プログラムが実行されて、『初めてのPowerShellに挑戦!』が表示されます。
簡単ですね^^
複数行のPowerShellをコーディングしたい場合
実際プログラムでシステムを作ろうとした場合、先ほどの例のように、コーディングが1行で「はい、終わり!」という場合はほぼ皆無。
システムによっては何百、何千行というコーディングになる場合があります。
ちなみに元SE・プログラマーの私のシステムエンジニアデビュー初めての実務は、何千行にもわたるVB.NETというプログラミング言語で書かれたコードの修正でした。
このように複数行にわたるコーディングの場合は、
- Windows PowerShell ISEを起動。
- Windows PowerShell ISEにコーディング。
- Windows PowerShell ISEでプログラムを実行。
という3ステップがプログラミングの流れになります。
ではこれも実際にやってみましょう。
Windows PowerShell ISEを起動
左下にある『Windowsメニュー』→『Windows PowerShell』→『Windows PowerShell ISE』の順にクリック。
メニューにない場合、見つからない場合は、左下の検索ウィンドウに「PowerShell ise」と入力すれば出てきます。
クリックすると、Windows PowerShell ISEが起動します。
ソースコードを書くためのエディタを開くため、下記『新規作成』ボタンをクリックします。
これでソースコードを書く準備が整いました。
Windows PowerShell ISEにコーディング
今度は、『「あなたの行ってみたい国はどこですか?」と質問して、相手が答えた国について「あなたの行ってみたい国は〇〇ですね。私も行ってみたい!」と表示する』というプログラムをコーディングしてみましょうか。
上記処理をPowerShellで実現するコーディングは以下の通りです。
$question = Read-Host "あなたの行ってみたい国はどこですか?"
$answer = "あなたの行ってみたい国は" + $question + "ですね。私も行ってみたい!"
echo $answer
さあ、次の項目でいよいよプログラム実行です!
サンプルコードの解説
今回はWindows PowerShell ISEの使い方を解説しているのでそのまま進んでもいいのですが、「いやいや、上のコードの解説もしてくれよ( ゚д゚)ポカーン」という方のために、解説します。
1行目:$question = Read-Host “あなたの行ってみたい国はどこですか?”
『$』は変数定義です。
『$question』で、「『question』という名前の変数を定義します」という意味です。
変数の名前なので『question』じゃなくても『inputcountry』なんでもOKです。任意の変数名を設定します。
『Read-Host』は標準入力。
『$question = Read-Host 』とすることで、ユーザーの入力値を変数『question』に格納しています。
『”あなたの行ってみたい国はどこですか?”』がシェルに表示されます。
これを表示することでユーザーに「あ、国名を入力すればいいのね。」と入力を促すことができます。
2行目:$answer = “あなたの行ってみたい国は” + $question + “ですね。私も行ってみたい!”
『$question 』には1行目で受け取ったユーザーの行きたい国名が格納されています。
『+』は文字列の連結を表します。
2行目のコードだけ見るとややこしいですが、わかりやすく置き換えると3つの文字列を連結するように指定しています。
・文字列A + 文字列B + 文字列C
連結した結果を『answer』という変数に格納しているんですね。
『answer』の中には「文字列A文字列B文字列C」と結合された文字列が格納されています。
3行目:echo $answer
これはもうおわかりですね。
「『answer』の中に格納されている文字列を表示せよ」という命令です。
スポンサーリンク
Windows PowerShell ISEでプログラムを実行
さあ、ではお待たせいたしました!
いよいよプログラムを実行してみましょう。
緑の『▶』マーク(スクリプトを実行)をクリックします。
下記赤枠部分がプログラムのソースコード部分です。
プログラム実行結果が下記の赤枠部分。
正しくはまだプログラムは全て実行済みではないですね。
ソースコード1行目のプログラムで相手の入力を促しているので、相手の入力を待っている状態です。
では、あなたの行ってみたい国を入力してみてください。
私は「エジプト」と入力してみました^^
入力したらリターンキーを押下します。
「あなたの行ってみたい国はエジプトですね。私も行ってみたい!」と表示されましたね^^
保存したファイルから実行するとエラーが出る原因と解決法
先ほど記述したコードを「sample.ps1」というファイル名で保存しましょう。
ファイルの保存は下記ボタンをクリックですることができます。
PowerShellのソースコードファイルが保存できました。
保存した直後にもう一度緑の『▶』マーク(スクリプトを実行)をクリックしてプログラムを実行してみましょう。
すると、なんと!!下記エラーが出てプログラムが実行できない!!
「なんで!?Σ(゚Д゚)」とびっくりしますよね。
私も始めてみたときはたまげました。
だって、コード一切変えてないのに、ファイルを保存した途端、プログラムが実行エラーになるんですもの。
プログラム実行エラーの原因
Windowsにデフォルト搭載されているPowerShellですが、Windowsの初期設定ではPowerShellのスクリプトの実行ポリシーがデフォルトでは無効になっているんです。
ファイルを保存する前はただのコマンドのみでしたが、ファイルを保存することで拡張子「.ps1」がついたことにより、Windowsが「あ!PowerShellのスクリプトを実行しようとしてやがるな!こんにゃろう!」と気が付いてしまったのです。
シェル(PowerShellの画面)からのソースコードの実行は可能だけれど、スクリプトの実行は不可なんですね。
PowerShellの現在の実行ポリシーを確認してみましょう。
シェル上に、下記コマンドを入力します。
Get-ExecutionPolicy
『Restricted』がスクリプト実行無効の状態です。
デフォルトで無効になっている理由は、セキュリティのためです。
PowerShellはWindowsのシステムに影響するプログラムの実行が可能なため、PowerShellを悪用したウイルスやハッカーによって攻撃されるのを防ぐためです。
PowerShellのスクリプトを実行するためには、実行ポリシーを変更すればOKです。
今回のPowerShell起動中に限って、スクリプト実行を可能にします。
下記コマンドをシェルに入力します。
Set-ExecutionPolicy RemoteSigned -Scope Process
なんだか恐ろしいメッセージが表示されますが、「はい」をクリックします。
それではもう一度下記コマンドを入力して、実行ポリシーが変更できたかどうかを確認します。
Get-ExecutionPolicy
RemoteSigned となっています。
RemoteSigned の状態で、ローカル上のスクリプトの実行が可能になります。
この状態で、緑の『▶』マーク(スクリプトを実行)をクリックしてプログラムを実行してみましょう。
プログラムが実行できましたね^^
まとめ
それでは今回の記事のまとめです。
PowerShellはMicrosoftが提供するWindowsシステム管理用のソフトウェア。
Windows7以降デフォルト装備、だれでも使える。
Windows PowerShell ISEを使ったプログラミングのステップは下記5ステップ。
- Windows PowerShell ISEを起動。
- Windows PowerShell ISEにコーディング。
- スクリプトを保存
- Windows PowerShellの実行ポリシーを『RemoteSigned』に変更
- スクリプトを実行
今回のPowerShell記事は、会社で必要になったため、自分自身の備忘録として記事にしようと思ったのがきっかけ。
私も「PowerShell?何それ?おいしいの?(°∀°)?」という状態でしたwww
せっかく勉強したのでPowerShell初心者へ向けた内容にしようかと思ったのですが、プログラミングに興味のある方が「プログラミングとは何ぞや?」というのがわかるような内容にしてみようかなと思ってまとめてあります。
プログラミングの仕組みはほとんどの言語で同じなので、この記事理解してもらえれば、仕組み、考え方は他の言語でも応用可能。
なので、PowerShell初心者の方はもちろん、プログラミング初心者の方にもプログラミング入門として勉強になる内容ですよ^^
さて、私も10年以上ぶりの仕事としてのプログラミング、頑張るぞい♪
元SE・プログラマーのゆかこでしたノシ
スポンサーリンク