我有一個腳本,用於構建一個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