・前提
前回(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の使用がおすすめ