2011-03-29 54 views
1

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

我希望能够从安慰。正如你所看到的,我试着将$ log变量作用域明确地设置为Global(它不起作用)。

比如我想能够运行以下命令: 记事本$ LOG1

而且具有转录在记事本中打开。

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

或者,有没有一种方法可以通过其他方式获取当前脚本文件的路径?

回答

1

我不认为重定向的作品。为什么不只是做notepad $logFile

更新:AFAIK,您无法找到开始 - 抄录路径值。但是,您可以查看会话是否正在转录。选中此项:http://poshcode.org/1500

如果您没有指定路径,Start-Transcript会在$ Transcript全局变量的值中使用该路径。如果您尚未创建此变量,则Start-Transcript将转录本作为\ PowerShell_transcript..txt文件存储在$ Home \ My Documents目录中。

顺便说一句,作为建议练习&在开始编写脚本之前,您应该始终从控制台开始。例如,当我运行在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 

在控制台上面的输出清楚地告诉我,重定向从未工作。

+0

您尝试输出到变量的语法是错误的,它应该是“> variable:log”。但是,这仍然不起作用,因为重定向仅适用于文件。 – JasonMArcher 2011-03-30 00:24:57

+0

我明白这一点。我不打算输出到一个变量。只是想展示如何使用控制台在将它们放入脚本之前首先尝试命令。所以,在问题中使用了相同的行! – ravikanth 2011-03-30 01:58:40

+0

我不知道你不能像那样重定向。它确实去了_somewhere_,因为如果该行在那里,控制台不会输出转录路径,而如果我删除了“> $ global:log”部分,它会在转录开始时将转录路径输出到控制台。 我想我基本上需要知道我是否可以访问在控制台中设置在$ profile脚本中的变量。忘记我在上面的例子中想要做的,原来的问题是不合适的。 – JoeG 2011-03-30 04:55:10

相关问题