来自变量的Powershell测试路径



我有一个PowerShell远程处理脚本,该脚本的测试路径始终为false。

$pathname = "C:temp"
$hostremote = "computer122" #example

示例-不起作用:

Invoke-Command -ComputerName $hostremote {Test-Path -Path '$pathname' }

示例-工作良好:

Invoke-Command -ComputerName $hostremote {Test-Path -Path 'C:temp' }

我试着用";并且这导致了一个错误;出来这一定是一个简单的powershell技巧,我错过了这么简单的事情。

有几个问题:

首先,在调用变量时不要使用单引号。如果您想按原样使用变量,为什么要使用引号?CCD_ 1要简单得多。如果您想在其他内容中进行设置,请使用双引号-Path "$pathnameSomeSubDir"

第二,你的变量在一个不同的范围内,所以你不能像这样检索它,所以你可以做这个

Invoke-Command -ComputerName $hostremote {Test-Path -Path $using:pathname }

但这对我来说似乎很糟糕,我更喜欢这个:

Invoke-Command -ComputerName $hostremote {Test-Path -Path $args[0] } -ArgumentList $pathname

最新更新