0

我正在尝试使用导入的 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_地址=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" static 10.12.81.82 255.255.255.0 10.12.81.1 1

这是我想要的样子:

psexec \TESTCSVVM -h netsh interface ip set address name="本地连接" static 10.12.81.82 255.255.255.0 10.12.81.1 1

这是 CSV 文件:

"VM_Name","IP_Address","Gateway","VLAN" "TESTCSVVM","10.12.81.82","10.12.81.1","HQ_VM_81"

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

谢谢

4

2 回答 2

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 
}
于 2013-03-29T17:45:26.983 回答
0

此外,通常将变量用引号括起来也可以。

因此,如果:

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

看起来像:

C:\Windows\myFile.ext
于 2013-03-29T20:28:35.227 回答