ang*_*son 2 powershell powershell-core
刚才我在我的 Powershell 脚本中观察到一些奇怪的东西,我终于把它缩小到我的代码中的一个错误,就是这一行:
$AnyExecuted = true
Run Code Online (Sandbox Code Playgroud)
应该是
$AnyExecuted = $true
Run Code Online (Sandbox Code Playgroud)
但是,这一行会在 Windows 10 上的标准 Powershell Core 窗口以及 Windows 终端中搞乱转义码处理:
有谁知道为什么会这样?true表达方式是什么?我找不到任何提及它,为什么它会对 Powershell 的输出产生这种影响?
请注意,显然我更新了我的脚本以使用 $true,这是我的意图,这个问题只是关于什么true是。
执行时
$AnyExecuted = $true
Run Code Online (Sandbox Code Playgroud)
$AnyExecuted将是类型Boolean,您的脚本可能会按预期运行。如果你执行
$AnyExecuted = true
Run Code Online (Sandbox Code Playgroud)
取而代之的是没有错误抛出,然后有一个别名,cmdlet 或可执行文件可用,具有名称 true. 它在默认的 Windows 10 安装中不可用。
由于它不会在您这边引发错误,因此您可能true以某种方式可用。您可以使用Get-Command true. 使用 MinGW 环境,使得true.exe可用。
使用您仍然未知的true“事物”的结果可能确实会导致意外行为。要调查结果,true您可以评估(true).GetType()您的系统。
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |