我的$ profile脚本会在运行时启动脚本。我正在将Start-Transcript的输出传递给变量($ log),如下所示: Start-Transcript -path $ logFile -append> $全球:日志
我希望能够从控制台读取此变量。正如您所看到的,我尝试将$ log变量范围显式设置为Global(它不起作用)。
例如,我希望能够运行以下命令: 记事本$ log1
并在记事本中打开成绩单。
这甚至可能吗?我一直在谷歌上跑了大约一个小时,我找不到任何与此相关的东西(这可能意味着它无法完成,但我想我无论如何都会问。)
或者,有没有办法以其他方式获取当前成绩单文件的路径?
答案 0 :(得分:1)
我认为重定向不起作用。为什么不做notepad $logFile
?
更新:AFAIK,您无法找到Start-Transcript Path值。但是,您可以找到会话是否已转录。检查一下:http://poshcode.org/1500
如果未指定路径,则Start-Transcript将使用$ Transcript全局变量值中的路径。如果您尚未创建此变量,则Start-Transcript将转录本存储在$ Home \ My Documents目录中\ PowerShell_transcript..txt文件。
BTW,作为推荐做法&在开始编写脚本之前,应始终从控制台开始。例如,当我在PowerShell控制台上运行以下命令时:PS C:\> $logfile = "C:\Scripts\Scratch\test.log"
PS C:\> Start-Transcript -path $logFile -append > $global:log
PS C:\> Get-Command Get-Help
CommandType Name Definition
----------- ---- ----------
Cmdlet Get-Help Get-Help [[-Name] <String>] [-Path <String>] [-C...
PS C:\> Get-Variable -Name log
Get-Variable : Cannot find a variable with name 'log'.
At line:1 char:13
+ Get-Variable <<<< -Name log
+ CategoryInfo : ObjectNotFound: (log:String) [Get-Variable], ItemNotFoundException
+ FullyQualifiedErrorId : VariableNotFound,Microsoft.PowerShell.Commands.GetVariableCommand
控制台上面的输出清楚地告诉我重定向从未奏效。