我對腳本有以下要求:自定義日誌文件創建 - Powershell
a。獲取腳本名稱和路徑。 b。創建一個ScriptPath \ Log-Time | date \ Logfile.Log c。給用戶3個選項,根據輸入更新日誌文件。
對於上述要求,香港專業教育學院創建了以下腳本:
#Variables Declaration-------------------------------------------
$pat = Split-Path $script:MyInvocation.MyCommand.Path -parent
$LogTime = Get-Date -Format "MM-dd-yyyy_hh-mm-ss"
$a = "[Info]:"+$LogTime+" Logged into Server"
$b = "[Warning]:"+$LogTime+" Unauthorized Access"
$c = "[Error]:"+$LogTime+" Wrong Credentials"
$ScriptName = $MyInvocation.MyCommand.Name
$path = $pat
#Folder and Log Creation------------------------------------------
if([IO.Directory]::Exists($path))
{
$m = New-Item -ItemType directory -Path $path -name Log
$n = New-Item -ItemType directory -Path $m -name $LogTime
}
$LogName = $ScriptName+"_Log_"+$LogTime+".log"
$log = New-Item -ItemType file -path $n -name $LogName
# Log Function------------------------------------------------------
log($in)
function log
{
$in = Read-Host "Enter your Option"
if ($in -eq "0")
{
$latest = Get-ChildItem -Path $n | Sort-Object LastAccessTime -Descending | Select-Object -First 1
$p = $path+$latest.name
Add-Content $p -value $a
}
elseif ($in -eq "1")
{
$latest = Get-ChildItem -Path $n | Sort-Object LastAccessTime -Descending | Select-Object -First 1
$p = $path+$latest.name
Add-Content $p -value $b
}
elseif ($in -eq "2")
{
$latest = Get-ChildItem -Path $n | Sort-Object LastAccessTime -Descending | Select-Object -First 1
$p = $path+$latest.name
Add-Content $p -value $c
}
else
{
$o = "Invalid Input"
$o
}
Move-Item $p $n
}
每當我跑,我得到創建了兩個日誌文件。
Exec2.ps1_Log_04-04-2014_10-21-11.log & & & & MExec2.ps1_Log_04-04-2014_10-21-11.log [M是其中腳本運行的文件夾]
第一個日誌文件是空的,而第二個日誌文件包含文本。
任何人都可以請幫我解決這個問題嗎?如果可能的話,使劇本簡短而甜蜜?
感謝和問候, 凱因