2016-07-03 132 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凭据时,它们自然不区分大小写,因此不需要操作用户输入的内容。