&引用;“真的”;把Powershell中的转义码处理搞砸了?
我刚才在我的Powershell脚本中观察到一些奇怪的东西,最后我将其缩小为代码中的一个bug,它是这样一行:&引用;“真的”;把Powershell中的转义码处理搞砸了?,powershell,powershell-core,Powershell,Powershell Core,我刚才在我的Powershell脚本中观察到一些奇怪的东西,最后我将其缩小为代码中的一个bug,它是这样一行: $AnyExecuted = true 应该是 $AnyExecuted = $true 但是,这一行会使windows 10上的standaline Powershell Core窗口以及windows终端中的转义代码处理混乱: 有人知道为什么会这样吗?什么是true表达式?我找不到任何关于它的提及,为什么它会对Powershell的输出产生这种影响 注意,显然我更新了我的脚本
$AnyExecuted = true
应该是
$AnyExecuted = $true
但是,这一行会使windows 10上的standaline Powershell Core窗口以及windows终端中的转义代码处理混乱:
有人知道为什么会这样吗?什么是true
表达式?我找不到任何关于它的提及,为什么它会对Powershell的输出产生这种影响
注意,显然我更新了我的脚本以使用$true,这正是我想要的,这个问题只是关于执行时的true
是什么
$AnyExecuted = $true
$AnyExecuted
将是Boolean
类型,您的脚本可以按预期运行。如果你执行
$AnyExecuted = true
相反,如果没有抛出错误,则会有一个别名、cmdlet或可执行文件,其名称为true
。在默认的Windows 10安装中,它将不可用
由于它不会在您这边抛出错误,因此您可能会以某种方式获得true
。您可以使用Get Command true
检查这一点。例如,使用MinGW环境可以使true.exe
可用
使用仍然未知的
true
“东西”的结果确实可能导致意外行为。要调查true
的结果,您可以在您的系统上评估(true).GetType()
。是的,您的答案包含有关如何解决问题的更多详细信息,因此我删除了我的答案并接受了您的答案。我安装了Cygwin,它有true.exe
。再加上我不了解如果我执行if(FunctionCall)
会发生什么,如果有什么事情做了,它也会输出,它似乎正常工作。