从控制台的$ profile脚本中调用变量

时间:2011-03-29 05:56:29

标签: powershell

我的$ profile脚本会在运行时启动脚本。我正在将Start-Transcript的输出传递给变量($ log),如下所示: Start-Transcript -path $ logFile -append> $全球:日志

我希望能够从控制台读取此变量。正如您所看到的,我尝试将$ log变量范围显式设置为Global(它不起作用)。

例如,我希望能够运行以下命令: 记事本$ log1

并在记事本中打开成绩单。

这甚至可能吗?我一直在谷歌上跑了大约一个小时,我找不到任何与此相关的东西(这可能意味着它无法完成,但我想我无论如何都会问。)

或者,有没有办法以其他方式获取当前成绩单文件的路径?

1 个答案:

答案 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

控制台上面的输出清楚地告诉我重定向从未奏效。