是否可以在PowerShell中的循环后使用变量?

是否可以在PowerShell中的循环后使用变量?,powershell,Powershell,我想知道在条件之后是否可能有变量,例如,通常while语句是这样的: while ($i -le 5) {Write-Host $i; $i++} $i = 10 $Variable2 = 5 ... $Variable100 = 25 $i=5 而($i-le5){Write Host$i;$i++} 但是因为我的脚本中有这么多变量,我想我可以在代码的末尾写变量,这样我就可以先读取脚本的逻辑,而不是变量,类似这样: while ($i -le 5) {Write-Host $i; $i+

我想知道在条件之后是否可能有变量,例如,通常while语句是这样的:

while ($i -le 5) {Write-Host $i; $i++}  
$i = 10
$Variable2 = 5
...
$Variable100 = 25
$i=5
而($i-le5){Write Host$i;$i++}

但是因为我的脚本中有这么多变量,我想我可以在代码的末尾写变量,这样我就可以先读取脚本的逻辑,而不是变量,类似这样:

while ($i -le 5) {Write-Host $i; $i++}  
$i = 10
$Variable2 = 5
...
$Variable100 = 25

您不需要在PowerShell中明确声明变量,如果这是您的要求的话。以前未定义的变量在第一次使用时会自动定义并使用默认值初始化

但是,根据变量的使用方式,您可能会无意中在不同的作用域中获得具有相同名称的不同变量:

PS C:\> function Foo { $i; $i = 23; $i }
PS C:\> Foo
23
PS C:\> $i = 42
PS C:\> $i
42
PS C:\> Foo
42
23
PS C:\> $i
42
PS C:\> function Bar { $i; $global:i = 23; $i }
PS C:\> Bar
42
23
PS C:\> $i
23

Powershell按从上到下的顺序执行脚本中的行,除非循环、条件或函数调用使执行跳转到其他地方

所以,不,你不能在使用变量后初始化它,那是没有意义的


这里的解决方案是将所有逻辑移到一个或多个函数中,然后在脚本末尾初始化变量并调用函数。这基本上就是你要问的。

-1对于没有任何意义的问题。请重新表述问题,添加一些关于预期结果和发生结果的示例。感谢您的回答!但我的问题是,当一个变量在一段时间后出现时,它不起作用——说它找不到这样的变量。在这种情况下,请用一个实际演示问题的代码示例更新您的问题。还包括您收到的确切错误消息。