我對 Powershell ISE 很陌生,我不確定如何去做。
我想獲取字串(uxxxx axxxx 名稱電子郵件)并將其作為包含用戶名、管理員和名稱的表回傳(希望最終自動化電子郵件)。我的代碼目前是這樣的:
$users = Get-Content ".\FileName.txt"
$line = "Username, Admin, Name, Email"
$parts = $line.Split(" ")
$Test = Foreach ($user in $users) {
Select-Object Username, Admin, Name
}
$Test | Sort-Object -Property Name | Out-GridView
這只是代碼的淡化版本,因為它將通過域和身份驗證程序,但我希望有人可以幫助我讓表現在作業。
uj5u.com熱心網友回復:
根據您所展示的內容,該John Doe部分意味著您無法使用Import-Csv或輕松拆分空間而無需重新組裝該列。
我在想:從左邊分割兩次空格,然后用字串的其余部分從右邊找到最后一個空格并在它周圍挑選出來。為 John Doe 列留下盡可能多的空間。(這只有在您可以保證用戶名、管理員名稱和電子郵件中永遠不會有空格的情況下才有效。如果不止一列可以有空格,您就沒有明顯的方法將空格作為列分隔符與作為資料的空格分開) .
$rows = Get-Content -Path '.\FileName.txt'
$users = foreach ($r in $rows) {
# Take 2 columns from the left, and store the rest
$user, $admin, $rest = $r.Split(' ', 3)
# Walk back from the right to the first space
# and pick either side of it
$i = $rest.LastIndexOf(' ')
$name = $rest.Substring(0, $i)
$email = $rest.Substring($i 1)
# Build an output that can work with Out-GridView
[PSCustomObject]@{
Username = $user
Admin = $admin
Name = $name
Email = $email
}
}
$users | Out-GridView
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/363478.html
標籤:数组 电源外壳 foreach Powershell-ise
