При использовании PowerShell с активированным строгим режимом, как мне установить значение по умолчанию для переключателя? Если я отключу строгий режим, код будет работать.
Set-StrictMode -Version 3.0
Param (
[switch]$time_cond = $false,
[switch]$no_stale = $false
)
If ((Test-Path variable:time_cond) -eq $false) {throw 'No var time_cond'}
If ((Test-Path variable:no_stale) -eq $false) {throw 'No var no_stale'}
PS F:\z0sh\ps\emwin> .\dl_emwin_0_ops_min06.ps1
WriteError: F:\z0sh\ps\emwin\dl_emwin_0_ops_min06.ps1:6
Line |
6 | [switch]$time_cond = $false,
| ~~~~~~~
| Cannot overwrite variable false because it is read-only or constant.
Exception: F:\z0sh\ps\emwin\dl_emwin_0_ops_min06.ps1:10
Line |
10 | … (Test-Path variable:time_cond) -eq $false) {throw 'No var time_cond'}
| ~~~~~~~~~~~~~~~~~~~~~~~~
| No var time_cond
Изменить:
Удаление = $false
исправляет ошибку не может перезаписать переменную НО теперь выдает новую ошибку при использовании строгого режима. В ошибке написано
PS F:\z0sh\ps\emwin> .\dl_emwin_0_ops_min06.ps1
InvalidOperation: F:\z0sh\ps\emwin\dl_emwin_0_ops_min06.ps1:6
Line |
6 | [switch]$time_cond,
| ~~~~~~~~~~
| The variable '$time_cond' cannot be retrieved because it has not been set.