我還是 powershell 的新手,我的腳本有問題,我的目的是在名稱列下匯入 CSV 資料,然后使用“計算機名”和“用戶名”為每個物件執行 split(),但是它可以捕獲有兩個結果的陣列,但在 Foreach 回圈之后它只運行最后一個物件。有人可以幫忙嗎 謝謝!
整個代碼
$ImportPath ="C:\data.csv"
$ComputerArray= @()
Import-Csv -Path $ImportPath |ForEach-Object{$ComputerArray = $_.Name}
Foreach($Hostname in $ComputerArray){
$CharArray =$Hostname.Split("\")
$ComputerName = $CharArray[0]
$Username = $CharArray[1]
}
CSV 日期看起來像 CSV 資料
$ComputerArray results
----------------------
Computer1\Local User
Computer2\Remote User
希望看起來像
$ComputerName results
---------------------
Computer1
Computer2
$Username results
---------------------
Local User
Remote User
uj5u.com熱心網友回復:
它不僅運行最后一個物件,它運行所有物件,但您只捕獲最后一個物件。兩個變數$computerName都$userName在每次迭代中重新分配。
下面將為您提供一組物件,其中包含 CSV 每一行的Computer和User屬性。
$ImportPath = "C:\data.csv"
$ComputerArray = (Import-Csv -Path $ImportPath).Name
$result = foreach($Hostname in $ComputerArray)
{
$ComputerName, $Username = $Hostname.Split("\")
[pscustomobject]@{
Computer = $ComputerName
User = $Username
}
}
$result | Format-Table
如果您想將計算機放在一個陣列上,而將用戶放在另一個陣列上,就像您預期的輸出一樣,您可以$result.Computer執行$result.User.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/416695.html
標籤:
