$firstRun = 'True'
устанавливает $firstRun
в строку 'True'
. Если вы хотите узнать, равно ли оно этому значению, оператор сравнения равен -eq
, поэтому $firstRun -eq 'True'
Для получения дополнительной информации об операторах сравнения запустите Get-Help about_comparison_operators
Спасибо, что дали мы знаем о опечатке, я буду придерживаться вашего примера, чтобы показать, как вы можете добавить префикс к своим переменным global:
, чтобы получить необходимую область видимости переменных.
$firstRun = 'True'
Function Do-Stuff {
if ($global:firstRun -eq 'True') {
Write-Host "True"
$global:firstRun = 'False'
}
else {
Write-Host "False"
}
}
$file | ForEach-Object { Do-Stuff }
Для получения дополнительной информации о областях проверьте Get-Help about_scopes
.