PowerShellスクリプトを実行する

PowerShellスクリプトを実行する

PowerShellのスクリプトの拡張子はps1です。

スクリプトではif文やfor文を書いてスクリプトを記述します。

if(条件式){

}else{

}

複数分岐がある場合は

if(条件式){

}elseif(条件式){

}

とタイプします。

for文は

for($i=1;$i -le 10;$i++){

}

というようにタイプします。

for文のインクリメントする変数は事前に宣言する必要などはありません。

PS C:\tomcat5.5> for($i=1;$i -le 3;$i++){write-host "a"}

とタイプするとaが3回表示されます。

これをa.ps1と言うファイルに保存します。

これを実行するのですが、ps1ファイルのセキュリティがあります。

PS C:\work_ps> get-executionpolicy
Restricted
PS C:\work_ps>

Restrictedとは「全てのスクリプト実行を禁止」を意味します。

その為、現状では実行できませんので、set-executionpolicyで設定を変更します。(管理者として実行しないとエラーとなります。)

PS C:\Windows\system32> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシー
を変更すると、about_Execution_Policies のヘルプ トピック
(http://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシー
を変更しますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y
PS C:\Windows\system32>

これでremotesignedに変更しました。これは、インターネットを介して実行するスクリプトに証明書を要求するので、ローカルで実行するには問題ありません。

また実行する際はファイル名の前に「./」を付加します。

PS C:\work_ps> ./a.ps1
a
a
a
PS C:\work_ps>

コメント

タイトルとURLをコピーしました