使用PowerShell 2,我可以正确使用$$
变量
PS > $PSVersionTable.PSVersion.Major
2
PS > Convert-Path 'Program Files'
C:\Program Files
PS > Convert-Path $$
C:\Program Files
但是,对于PowerShell 4,同一命令会产生错误
PS > $PSVersionTable.PSVersion.Major
4
PS > Convert-Path 'Program Files'
C:\Program Files
PS > Convert-Path $$
Convert-Path : Cannot find path 'C:\'Program Files'' because it does not exist.
如何在PowerShell 4中使用此示例?
答案 0 :(得分:1)
一种方法是:
Convert-Path 'Program Files'
Convert-Path ($$ -replace "`'", '')
评论后编辑:
Convert-Path ($$ -replace "^`'|`'$", '')
在$$
的开头和结尾只替换单引号答案 1 :(得分:1)
您可以使用Invoke-Expression
展开字符串。
PS > Convert-Path 'Program Files'
C:\Program Files
PS > Convert-Path (Invoke-Expression $$)
C:\Program Files
使用别名:
PS > cvpa (iex $$)
C:\Program Files
您甚至可以使用它来创建自己的自动变量。在这里,我使用4
,因为它与$
在同一个键上。
将其放入您的个人资料中:
$Global:4 = 0
$null = Set-PSBreakpoint -Variable 4 -Action {
$global:4 = Invoke-Expression $$} -Mode Read
然后你可以运行:
PS > Convert-Path 'Program Files'
C:\Program Files
PS > Convert-Path $4
C:\Program Files