PowerShellを急に触ることになったヒトのための備忘録。
スクリプトファイルに関数を用意しておいて、各所で使いまわせるようした。
事前準備
- 任意場所に、ログファイルの配置場所
D:\hogehoge\log
ディレクトリを作っておいてください。
定義する
下記のようなスクリプトを書いて、デスクトップに log.ps1
といった名前で保存する。
## HOWTO USE
## 1.READ THIS FILE
# . ".\\log.ps1"
## 2.CALL FUNCTION
# Log "F_FUGA01" "hoge"
function Log($LogName, $LogString){
# Set file path
$LogPath = "D:\hogehoge\log"
$Now = Get-Date
$LogFile = $LogName + "_{0:0000}{1:00}{2:00}.log" -f $Now.Year, $Now.Month, $Now.Day
$LogFileName = Join-Path $LogPath $LogFile
# Set file message
$Log = "{0:0000}-{1:00}-{2:00} " -f $Now.Year, $Now.Month, $Now.Day
$Log += "{0:00}:{1:00}:{2:00}.{3:000} " -f $Now.Hour, $Now.Minute, $Now.Second, $Now.Millisecond
$Log += $LogString
Write-Output $Log | Out-File -FilePath $LogFileName -Encoding Default -append
Return $Log
}
呼び出す
外部のPowerShellスクリプトから呼び出すときは下記のような感じ。
注意点は、「外部ファイルのImportの仕方」と「呼び出す関数への引数の渡し方」。
. C:/Users/Administrator/Desktop/log.ps1
Log "F_FUGA01" ("{0}-{1}" -f "hoge", "fuga")
その他
PowerShell実行時に権限あたりで怒られるときは、PowerShellのターミナルで権限を調整。
PS C:\Users\Administrator\Desktop> Set-ExecutionPolicy RemoteSigned