我有一个脚本,用于构建一个GUI,其中包含用户将要选择的打印机列表。 这些打印机也是这样构建的CSV文件: 计算机(打印机的名称); IP XXXX,XXXX索引超出范围powershell
我想收集所有在名为x 然后我想在对应于所选项目的CSV每个条目,并把它放在另一个数组名为Ÿ 最后,我的阵列选定的值将y数组导出到将用于在域中安装打印机的新CSV中。 我试图从第二步直接走到最后一步,但我不能。
下面是部分代码:
$OKButton.Add_Click({
foreach ($objItem in $objListbox.SelectedItems)
{$x += $objItem}
[email protected]()
for ($i=0; $i -lt $x.length; $i++)
{
$y[$i]=Import-Csv C:\Users\Administrateur\Desktop\Classeur33.csv | Where-Object {$_.Computer -eq $x[$i]}
}
$y > C:\Users\Administrateur\Desktop\allezjoue.csv
我试图用另一种语言的3 x值数组来做到这一点,它工作得很好,但我真的需要保留,可以让列表框用户选择他想要的打印机。
Powershell的总是返回我的“索引超出范围” 我试图把“$ Y = $ X”,所以它们具有相同的范围,但我这样做,当它返回,我可以在一个对象不是指数,有“System.string”类型。
我将从显而易见的评论开始,$ x和$ y是可怕的变量名称。接下来我会问,究竟是什么让你相信$ x是一个数组?在您发布的代码中,至少不要将其初始化为数组。 – EBGreen
我在按钮上的事件之前完成了它。 – Sami
'Where-Object {$ _。Computer -eq $ x [$ i]}' 您正在使用-eq比较将一个属性值与整个数组进行比较。真诚地怀疑这种情况永远是真的。 – Xalorous