首页 > 解决方案 > 编写摘要日志并从脚本中捕获错误

问题描述

我是 powershell 新手,想输入以下脚本。我的目标是基本上输出运行复制项时发现的任何错误,例如,如果找不到文件,我想将其添加到日志中,如果找到则将其添加到日志中。到目前为止,我已成功添加找到的项目,但所有错误均未写入日志文件。最后,我还想获得成功移动的项目总数,但无论我将“foreach-object {$I++}”放在哪里,我都会得到 0 或 1

对此的任何帮助将不胜感激。谢谢!

$CSVFile = "~\Desktop\Report.csv"
$LogFile = New-item -ItemType file -Path "~\Desktop\Output.log"
$FolderA = "~\Desktop\Test1"
$FolderB = New-Item -ItemType directory -Path "~\Desktop\Test2"
$CSVColumn = "Objects"
$I = 0 

Import-Csv $CSVFile | ForEach-Object { 

Try {Copy-Item "$FolderA\$($_.$CSVColumn)" -ErrorAction SilentlyContinue $FolderB}

Catch {

Add-Content -Path $LogFile -Value "ERROR moving $_."}

Finally {

Add-Content -Path $LogFile -Value "File $($_.$CSVColumn) Photos has been sucessfully copied to Destination"} 

} 
ForEach-Object {$I++}

Add-Content -Path $LogFile -Value "Total Items Moved: $I"
Write-Host "Script Completed, See Log for Details." 

标签: powershell

解决方案


推荐阅读