我正在尝试使用导入的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之间没有空格?
由于
答案 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