Powershell启动记录错误

时间:2016-05-05 21:19:09

标签: windows powershell scripting try-catch transcription

我正在从批处理文件中运行powershell脚本:

try {
  Start-Transcript -path ("C:\PS\Logs\XXXX_Session_QA_" + (Get-Date).tostring("yyyyMMdd-hhmmss-tt") + ".txt")

  <Rest of the Code>
}
catch {
  stop-transcript
}

每次运行脚本时,都会看到错误

  

错误:转录尚未开始。使用start-transcript命令开始转录。

我已经阅读了之前的一些或大部分帖子,代码应该可以正常运行,但它根本不会触发。也没有创建初始日志文件。知道为什么会发生这种情况或者有什么帮助吗?

1 个答案:

答案 0 :(得分:2)

您尝试将成绩单写入的位置是否存在文件夹结构?根据文档,它是必需的(见下面的斜体):

  

-Path

     

指定转录文件的位置。输入.txt的路径   文件。不允许使用通配符。如果您没有指定路径,   Start-Transcript使用$ Transcript全局值中的路径   变量。如果您尚未创建此变量,请使用Start-Transcript   将成绩单存储在$ Home \ My Documents目录中   \ PowerShell_transcript..txt文件。

     

如果路径中的任何目录不存在,则命令失败。

     

https://technet.microsoft.com/library/05b8f72c-ae3b-45d5-95e0-86aa1ca1908a(v=wps.630).aspx

当然,您还需要获得写入该路径的权限。

所以......如果Start-Transcript cmdlet正在抛出错误,那么您将在catch{}块(无形)中捕获它,然后执行Stop-Transcript

这可能是导致错误信息的原因:最终的结果是,当你从未开始转录时,你试图阻止转录。