首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未登录到输出日志文件时出错

未登录到输出日志文件时出错
EN

Stack Overflow用户
提问于 2016-12-22 15:23:45
回答 2查看 30关注 0票数 1

我有以下脚本,当满足if(-not)条件时,会生成日志文件,但不会在日志文件中写入错误。

我对脚本语言有非常基本的了解,因此无法理解为什么没有记录任何内容。感谢您的帮助。

代码语言:javascript
复制
$resulterror = $error[0].exception.message
$BckDate = Get-Date -Format "ddMMyyyy"
$BckFolder = "<path>"+$BckDate
$log = "<path>"+$BckDate+".log"'

Copy-Item -Path $BckFolder -Destination <drive-letter> -ErrorAction silentlyContinue -recurse

if(-not $?) {$resulterror >> $log ; invoke-expression -Command "<path-of-ps-script-to-run>"}

else {"Backup "+$BckDate+" done successfully" >> $log}

实际路径已被隐藏,<>中的" path“解释它是一个目录路径。

在<>中,当满足if(-not)条件时触发的脚本的路径将替换为要运行的ps脚本的路径。<>只是注释的括号,所以不要将它们与实际的代码符号混淆。

EN

回答 2

Stack Overflow用户

发布于 2016-12-22 15:46:57

我将使用-ErrorVariable高级参数将错误消息存储在该变量中并访问它:

代码语言:javascript
复制
Copy-Item -Path $BckFolder -Destination <drive-letter> -ErrorAction silentlyContinue -recurse -ErrorVariable copyError
if($copyError)
{
    $resulterror | Out-File -FilePath $log -Append
    invoke-expression -Command "<path-of-ps-script-to-run>"
}
else 
{
    "Backup "+$BckDate+" done successfully" | Out-File -FilePath $log -Append
}
票数 0
EN

Stack Overflow用户

发布于 2016-12-22 15:50:48

您的变量$resulterror是空的,因为您在脚本一开始就保存了它,并且当时没有任何错误。尝试在IF条件下使用显式$error.exception.message而不是$resulterror。

代码语言:javascript
复制
$BckDate = Get-Date -Format "ddMMyyyy"
$BckFolder = "<path>"+$BckDate
$log = "<path>"+$BckDate+".log"

Copy-Item -Path $BckFolder -Destination <drive-letter> -ErrorAction silentlyContinue -recurse

if(-not $?) {$error[0].exception.message >> $log ; invoke-expression -Command "<path-of-ps-script-to-run>"}

else {"Backup "+$BckDate+" done successfully" >> $log}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41277756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档