【发布时间】:2019-10-23 20:38:18
【问题描述】:
我需要为此脚本执行的每个操作创建一个日志文件。
我尝试使用重定向(>>),但无法将输出实际写入文件。
while($true){
$FromMC = Get-ChildItem -Path "\\x\From MC" -Filter *.mpg
Write-Host "Checking '\\x\From MC' for files" -ForegroundColor Cyan
Write-Host $FromMC.count"Files Found" -ForegroundColor Cyan
Write-Host ""
ForEach($file in $FromMC){
try{
Move-Item -Filter 7ST* -Path $file.Fullname -Destination "\\x\programs\7TH STREET THEATER" -Verbose -Force -ErrorAction Stop
}
catch{...}
Write-Host "Pausing for"$ts.Minutes"minutes..." -ForegroundColor Cyan
Write-Host "Ctrl+C to Stop"
Write-Host ""
Start-Sleep -Seconds $ts.TotalSeconds
}
我希望输出与 shell 中的“-verbose”输出完全相同。输出类型:Write-Host、Verbose、Write-Warning
我觉得解决方法非常简单,我只是忽略了它。
【问题讨论】:
-
Write-Host 不被重定向,它用于在控制台上与用户交互。请改用
Write-Output(或者只是不分配返回值)。并且错误输出可以通过2>>重定向。 -
看看powershell审计。这几乎得到了一切......并且在操作系统级别设置,而不是在任何特定脚本中。它是一组可以轻松控制的 GPO 设置。
标签: powershell logging warnings verbose