Powershell开始抄录错误

我从batch file运行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命令开始转录。

我已经经历了一些或大部分以前的职位,代码应该工作,但它并没有触发。 最初的日志文件也没有被创build。 任何想法为什么这可能会发生或在这里的任何帮助?

文件夹结构是否存在于您正在尝试写入脚本的地方? 根据文件,这是必需的(见下面的斜体):

-路径

指定转录文件的位置。 输入一个.txt文件的路径。 通配符是不允许的。 如果不指定路径,则Start-Transcript将在$ Transcript全局变量的值中使用该路径。 如果您尚未创建此变量,则Start-Transcript将转录本作为\ PowerShell_transcript..txt文件存储在$ Home \ My Documents目录中。

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

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

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

所以…如果Start-Transcript cmdlet正在抛出一个错误,那么你就在catch{}块中(不可见地)捕获它,然后执行Stop-Transcript

这大概是什么实际上导致了错误信息:最终的结果是,你试图停止转录,当它从来没有开始的第一个地方。