我試圖查詢AD以獲取用戶的電話號碼,然後將其格式化爲標準格式(### - ####)。我使用了一個Switch語句,因爲我已經看到了少數不同格式的數字。隨着我有我的代碼設置雖然我得到一個錯誤的方式:「術語開關未被識別爲cmdlet,函數,腳本文件的名字......」PowerShell管道切換聲明格式化電話號碼
下面的代碼:
$ADInfo = Get-ADUser $User.Email.split("@")[0] -Properties * -Server $DC
$User.'Phone Number' = $ADInfo.telephoneNumber | Switch -regex ($_) {
'^\d{5}$'
{
"{0:38#-####}" -f $_
break
}
'^\d{7}$'
{
"{0:###-####}" -f $_
break
}
default
{
break
}
}
我誤解了管道是如何工作的?我想我可以將這些信息保存到一個臨時變量中,然後輸入一個Switch語句,但這似乎是使用管道的一種有效方法。
無論如何,任何幫助表示讚賞!謝謝!
根據你在Mathias的回答中的評論,這就是我所使用的。無論出於什麼原因,我都必須將其轉換。telephoneNumber爲一個整數,但我認爲這可能是因爲其中一些電話號碼格式正確,PowerShell將它們解釋爲字符串。 – Tchotchke