gpt4 book ai didi

powershell - Powershell-在函数内部设置变量而不是全局设置吗?

转载 作者:行者123 更新时间:2023-12-03 00:32:04 24 4
gpt4 key购买 nike

我有以下代码:

$firstRun = 'True'

$file | ForEach-Object {

Function Do-Stuff {
if ($firstRun = 'True') {

write-host "null"
$firstRun = 'False'
}
}
Do-Stuff
}

当我调用函数'Do-Stuff'时,它将第一次运行,无论我在哪里放置 $ firstRun ='False',它都会返回true并再次初始化if块。我究竟做错了什么?

最佳答案

$firstRun = 'True'$firstRun设置为String '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

关于powershell - Powershell-在函数内部设置变量而不是全局设置吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59832184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com