文字列ベースの変数を .csv ベースのリストと比較して、文字列が存在するかどうかを判断しようとしています。私が考慮に入れなかったのは、変数が項目リストの 1 つの部分文字列である可能性です。
以下のコードの前に、ユーザーに名と姓を入力するように求め、提供された情報を使用して、次のアクションを実行して 8 文字のユーザー名を生成し、リストと照合してそのユーザー名を確認します。利用可能であるか、すでに取得されています。
$LastName = $objTextBoxLN.text
$LastName = (Get-Culture).textinfo.totitlecase($LastName)
$UN = $objTextBoxLN.text.Substring(0,[System.Math]::Min(7, $objTextBoxLN.text.Length)).ToLower()+$objTextBoxFN.text.Substring(0,1).ToLower()
Write-Host "Searching for Username Conflicts"
Write-Host
IF(select-string -Path "c:\Folder_X\userlist.csv" -pattern $UN)
{
$UN = $objTextBoxLN.text.Substring(0,[System.Math]::Min(6, $objTextBoxLN.text.Length))+$objTextBoxFN.text.Substring(0,2)
Write-Host "Conflict found! Username" $UN.ToLower() "generated using 6 characters from last name plus 2 characters from first name (Option 2)"
Write-Host
ELSE
{
Write-Host "No Conflicts Found. Username" $UN "generated using 7 characters from last name plus 1 character from first name (Option 1)"
Write-Host
}
したがって、Userlist.csv にユーザー名のリストがある場合:
- スミス
- 白い
- ホワイトウィ
など...
そして、エンドユーザーが「Harry Smit」と入力すると、「smith」というユーザー名が生成され、IF ステートメントは、現在のユーザー名「smithj」内のリストで「smith」を見つけ、ユーザー名を「smithhi」に更新しますが、これはユーザー名「smith」が存在しないことを確認し、元のユーザー名を返すようにしたいと考えています。
誰もが提供できる助けに感謝します。うまくいけば、簡単な解決策があります。