在powershell中调用一个没有空格的变量?

时间:2013-03-29 17:39:36

标签: powershell

我正在尝试使用导入的CSV文件中的变量来替换字符串中的变量。

这是代码。

param( [string] $CSV) $VMs = Import-Csv $CSV Foreach ($VM in $VMs) { psexec \\$VM.VM_Name -h netsh interface ip set address name='"Local Area Connection"' static $VM.IP_Address 255.255.255.0 $VM.Gateway 1 }

这就是它的回报:

psexec \ @ {VM_Name = TESTCSVVM; IP_ADDRESS = 10.12.81.82;网关= 10.12.81.1; VLAN = H Q_VM_81} .VM_Name -h netsh interface ip set address name =“Local Area Connection” 静态10.12.81.82 255.255.255.0 10.12.81.1 1

这就是我想要的样子:

psexec \ TESTCSVVM -h netsh interface ip set address name =“Local Area Connection” 静态10.12.81.82 255.255.255.0 10.12.81.1 1

这是CSV文件:

“VM_NAME”, “IP_ADDRESS”, “网关”, “VLAN” “TESTCSVVM”, “10.12.81.82”, “10.12.81.1”, “HQ_VM_81”

如何确保\和第一个变量$ VM.VM_Name之间没有空格?

由于

2 个答案:

答案 0 :(得分:1)

试试这个:

Foreach ($VM in $VMs) {
    psexec \\\\$($VM.VM_Name) -h netsh interface ip set address `
        name='"Local Area Connection"' `
        static $VM.IP_Address 255.255.255.0 $VM.Gateway 1 
}

答案 1 :(得分:0)

另外,通常用引号包装变量也可以。

所以如果:

$path = C:\Windows\
$File = MyFile.ext
write-host "$path$File

看起来像:

C:\Windows\myFile.ext