在学习 PowerShell 时,我${$}
错误地执行了该命令并得到了如下输出:
PS C:\Users\myuser> Get-ChildItem Env: | Out-File -FilePath $home\env.txt
PS C:\Users\myuser> ${$}
$home\env.txt
一开始我相信它是类似的$_
,但做的${$_}
却不一样。
根据我尝试过的其他示例,它似乎从前一个命令中检索最后一个参数,但我不太确定它是如何工作的或它实际上在做什么。
我将非常感激您的解释或文档/解释的链接。
PowerShell 主机信息(如果需要):
名称:ConsoleHost
版本:5.1.17134.858
InstanceId:[已删除,因为我不知道是否可以粗心共享]
UI:System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture:en-US
CurrentUICulture:en-US
PrivateData:Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
DebuggerEnabled:True
IsRunspacePushed:False
Runspace:System.Management.Automation.Runspaces.LocalRunspace
答案1
输入${$}
被评估为自动变量$$
。$$
本身被设置为会话中最后一个输入行的最后一个标记。在你的情况下,它被设置为最后一个参数home\env.txt
您还可以通过类似输入的结果${?}
来看到这种效果$?
,这是另一个自动变量,它包含最后执行的命令的结果。