2016-07-03 174 views
2

我有一個問題(我有點新手,請溫柔:))PowerShell的大小寫變量

我想編寫一個腳本,並在我公司用戶操作。 用戶名可以是大寫字母/小寫字母,而且域名有時也用大寫字母分配給它們,所以用戶名可以是: domain \ username,DOMAIN \ USERNAME,DOMAIN \ username或domain \ USERNAME。

請問像這樣的用戶名:

$user = Read-Host "Please insert username" 

我怎樣才能讓$user不區分大小寫,也是公司的名字嗎?

用戶名需要像$company\$user而不區分大小寫。

+0

字符串不關心自己的情況。但是運營商和一些方法會。您需要向我們展示您對變量所做的工作,以便任何人都能夠正確回答。 – Matt

+0

您目前是否遇到問題? PowerShell不僅經常不是關於大小寫的情況,而且默認情況下Windows也不是用戶名。 –

+1

_Case sensitivity_概念沒有意義_purpose_。例如,默認情況下,所有比較運算符都不區分大小寫。大多數窗口cmd命令也是如此。 'net user UsErNaMe'和'net user uSeRnAmE'是等價的。請[編輯]你的問題,並添加滿足[mcve]規則的代碼。 – JosefZ

回答

3

我不確定你的意思。默認情況下,PowerShell中的字符串通常不區分大小寫。他們的情況下知道,這意味着他們知道的A是一個不同的字形比a,它會記住使用,但正常的比較操作符(-eq-match-like-lt-in等)都不區分大小寫。您必須爲區分大小寫的比較指定區分大小寫的版本(-ceq-cmatch-clike-clt-cin等)。

如果你想字符強制特定的情況下,你可以這樣做:

#Set characters to lower case 
$user = $user.ToLower(); 

#Set characters to upper case 
$user = $user.ToUpper(); 

但沒有它們標記爲區分大小寫本身的字符串的屬性。

0

無需特殊處理。

$domain = "MYCOMP" 
$user = "jblogg" 
$domain = "MYCOMP" 
Write-Output "$domain\$user" 

> MYCOMP\jblogg 

使用Windows憑據時,它們自然不區分大小寫,因此不需要操作用戶輸入的內容。