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_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" static 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" static 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 の間にスペースがないようにするにはどうすればよいですか?

ありがとう

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 に答える