Variables 使用PowerShell 4自动断开变量
使用PowerShell 2,我可以正确使用Variables 使用PowerShell 4自动断开变量,variables,powershell,Variables,Powershell,使用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 > Con
$$
变量
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
一种方法是:
Convert-Path 'Program Files'
Convert-Path ($$ -replace "`'", '')
评论后编辑:
Convert-Path ($$ -replace "^`'|`'$", '')
要仅替换$$开头和结尾的单引号,可以使用
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
试试看,如果路径是
ProgramFiles'
,我现在无法测试它,这将失败。