【问题标题】:Calling a variable without a space before it in powershell?在powershell中调用没有空格的变量?
【发布时间】:2013-03-29 17:39:35
【问题描述】:

我正在尝试使用导入的 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="本地连接" 静态 10.12.81.82 255.255.255.0 10.12.81.1 1

这是我想要的样子:

psexec \TESTCSVVM -h netsh interface ip set address name="本地连接" 静态 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 之间没有空格?

谢谢

【问题讨论】:

    标签: powershell


    【解决方案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 
    }
    

    【讨论】:

      【解决方案2】:

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

      如果:

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

      看起来像:

      C:\Windows\myFile.ext
      

      【讨论】:

        猜你喜欢
        • 2020-03-10
        • 1970-01-01
        • 1970-01-01
        • 2016-09-27
        • 1970-01-01
        • 2014-06-17
        • 2011-07-05
        • 2017-12-01
        • 2017-08-04
        相关资源
        最近更新 更多