Как глобально нормализовать строки юникода, поступающие в HTTP-запросах?

То, что должен делать Bash, заключается в неявной передаче кода выхода команд в Boolean при передаче логическим операторам. PowerShell этого не делает, но может быть сделана функция для обертывания команды и создания такого же поведения:

> function Get-ExitBoolean($cmd) { & $cmd | Out-Null; $? }

( $? - это bool, содержащий успех последнего кода выхода )

Для двух пакетных файлов:

#pass.cmd
exit

и

#fail.cmd
exit /b 200

... поведение может быть проверено:

> if (Get-ExitBoolean .\pass.cmd) { write pass } else { write fail }
pass
> if (Get-ExitBoolean .\fail.cmd) { write pass } else { write fail }
fail

Логические операторы должны оцениваться так же, как в Bash. Сначала установите псевдоним:

> Set-Alias geb Get-ExitBoolean

Тест:

> (geb .\pass.cmd) -and (geb .\fail.cmd)
False
> (geb .\fail.cmd) -and (geb .\pass.cmd)
False
> (geb .\pass.cmd) -and (geb .\pass.cmd)
True
> (geb .\pass.cmd) -or (geb .\fail.cmd)
True

1
задан Paulo Phagula 26 March 2019 в 18:45
поделиться