LoginSignup
5

More than 5 years have passed since last update.

PowerShellスクリプトの即席ロギング

Last updated at Posted at 2017-02-17

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5