我正在从批处理文件运行 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 命令开始转录。
我已经浏览了之前的一些或大部分帖子,代码应该可以工作,但根本没有触发。也没有创建初始日志文件。知道为什么会发生这种情况或者这里有什么帮助吗?
您尝试写入脚本的文件夹结构是否存在?根据文档,这是必需的(见下面的斜体):
-路径
指定转录文件的位置。输入 .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
。
这可能是实际导致错误消息的原因:最终结果是您试图在转录从未开始时停止转录。
确保您有权访问您尝试写入的路径。就我而言,我尝试写入的 C:\ 驱动器上的路径仅限于我运行脚本的用户。