PowerShellでスクリプトを作成する(第二回)

・前提

前回(PowerShellでスクリプトを作る(第一回) – 日曜エンジニアの学習記録)に引き続きコマンドプロンプトに頼り、PowerShellを実務で少ししか触ったことがなかった(PowerShellを使ってHyper-Vの仮想スイッチを作ってタグVLANの検証を行ったくらい)ので以下の講座でハンズオンしてみる

Powershell 初心者講座!これを見ればPowershellが理解できる!#IT #powershell #エンジニア未経験 #インフラエンジニア #windows

シェルスクリプトでPCの定型作業を自動化する(Windows Powershell)

【PowerShell 一行自動化】サクッとWebスクレイピング

講座内で紹介された中で項立てするまでは行かない知識メモ

  • PowerShellで使用するコマンドはコマンドレットと呼ばれ、動詞-名詞の形で定義される
  • PowerShellの変数の定義は変数の頭に$を付ける
  • ifの後述(条件節)は()で囲い、処理内容を{}で囲う
  • ログで大事なことはログを見てエラー箇所が明確に分かることなので、その点を留意してツールを作成する
  • WebスクレイピングはWebページから情報を抜き出す技術のことであるが、アクセスしすぎで負荷をかけないようにするべきで、Webスクレイピングの前にWebAPIを確認するべきであればそれを使用すべき、Webスクレイピングは著作権法的にグレーorアウトなので商用で使用することは原則不可

学んだこと

PowerShellのエラー判定について、デフォで$?という変数が用意されており、処理が成功したらTrue,それ以外でFalseが格納されるので処理(一つのコマンド)を実行した後?変数を呼び出して(Write-Host $?)中身を確認するのが基本

ただ、上記もよいがIF文でTest-Pathを使用して確認する方法などもある

以下配列の構文

$[配列の変数名] = @("配列の要素1","配列の要素2"…)
$[配列の変数名][i] #要素番号i-1の要素を出力

外部テキストファイルの情報を配列として取得する方法

配列を記入した(例:1,2,3,4,5)テキストファイルを作成してps1ファイルと同じ階層に格納する

以下がその出力例

$LIST=Get-Content "ファイルパス"#Get-Contentでファイルの内容を参照
foreach ($ITEM in$LIST) #LISTの内容をITEMにループして代入
{
$VAL=$ITEM.Split(",") #カンマで配列が区切られていることを指定
$VAL_A=$VAL[0]
$VAL_B=$VAL[1]
$VAL_C=$VAL[2]
}

while文が変数testで5以下の間実行される構文

while($test -le 5){
処理内容}

Webスクレイピングについて、ログインが要求されるサイトではJSのpuppeteerの使用がおすすめ

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です