不能使 lc 参数起作用?

Can't make the lc parameter work?

我正在尝试创建一个简单的 if 语句并希望它忽略大小写。

这是我的伪代码:

if (Lowercase $xxx notequal lowercase "xxx")
{......}

我试过:

if ( -lc $ConfigAppUsers  -ne -lc "No"  )
if (  lc $ConfigAppUsers  -ne  lc "No"  )
if (( lc $ConfigAppUsers) -ne (lc "No") )
if ((-lc $ConfigAppUsers) -ne (-lc "No"))

我总是得到:

-lc : The term '-lc' is not recognized as the name of a cmdlet, function,
script file, or operable program. Check the spelling of the name, or if a
path was included, verify that the path is correct and try again.
At line:1 char:1
+ -lc "No"
+ ~~~
    + CategoryInfo          : ObjectNotFound: (-lc:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

我做错了什么?

我不确定你为什么一直添加减号:

if ( lc $ConfigAppUsers ne "no" ) {
  ...
}

你可以说 lc "No" 而不是 "no",但是在字符串文字上调用 lc 有点傻。

您的另一个问题似乎是您没有使用 Perl。您收到的错误不是 Perl 错误消息。我认为这是一个 Windows PowerShell 错误。

lc 是 Perl 函数,不是 PowerShell 函数。在 PowerShell 中,您可以通过调用字符串对象的 ToLower() 方法将字符串小写:

if ($ConfigAppUsers.ToLower() -ne 'no')

但是,默认情况下,PowerShell 比较不区分大小写,因此您实际上不需要这样做。简单地比较字符串就足够了:

if ($ConfigAppUsers -ne 'No')