在 CSV 中某些列的值前面添加一个变量

Add a variable in front of values of certain columns in a CSV

我目前正在尝试创建一个简单的 Import-Csv 以将 vm-guests 从模板克隆到 vcenter 中的 esx 主机。

在开始克隆之前,我想询问 vm-guests 所属站点的名称。站点的名称是 vm-guest 将拥有的名称的一部分,也是 foldername 的一部分,guest 将被放入其中。

Connect-VIServer -Server vcenter.localdomain.com -user *

$Site = Read-Host "What is the name of the Site you want to install (i.e. Site01)?"

Import-Csv "C:\guests.csv" -UseCulture | %{
New-vm -Name  $_."Server Name" -VMhost $_."ESX Host" -Template $_.Template -Datastore $_.Datastore  -Location $_.Folder
}

How/Where 我是否将变量 $Site 放在 $_."Server Name"$_.Folder 前面?

您可以使用格式字符串:

Connect-VIServer -Server vcenter.localdomain.com -user *

$Site = Read-Host "What is the name of the Site you want to install (i.e. Site01)?"

Import-Csv "C:\guests.csv" -UseCulture | %{
New-vm -Name ('{0}{1}' -f $Site, $_."Server Name") -VMhost $_."ESX Host" -Template $_.Template -Datastore $_.Datastore  -Location ('{0}{1}' -f $Site, $_.Folder)
}