【问题标题】:How to simulate "GoSub / Return" in Powershell如何在 Powershell 中模拟“GoSub / Return”
【发布时间】:2020-04-30 01:09:35
【问题描述】:

抱歉 - 我现在非常喜欢 PowerShell。

我想迭代一个变量(例如,$Var),每次(重新)设置 $Var 时,我想执行一个公共代码块,然后返回。

在 VB 中,我可以使用 GoSub / Return。它可能看起来像这样:

$Var = "第一个"

GoSub 代码块

$Var = "秒"

GoSub 代码块

$Var = "第三个"

GoSub 代码块

>

:代码块

这样做

那就这样吧

然后做另一件事

返回

在 PowerShell 中完成此任务的最佳方法是什么?最好,我想避免必须定义一个数组 -(例如 $Var1、$Var2、$Var3、...)并使用 For Each 循环遍历它。

您能提供的任何建议将不胜感激。谢谢。

【问题讨论】:

标签: powershell


【解决方案1】:

使用函数调用。 (顺便说一句,调用 gosub 的坏例子,但我无法抗拒

Function GoSub {
   $var = Args[0]
   <Block of Code that uses $Var>
 }


$Var = "first"
GoSub $Var
$Var = "second"
GoSub $Var
$Var = "third"
Gosub $Var

【讨论】:

  • 感谢 Slackr!大声笑我刚刚发现了这一点,并来到这里更新问题。非常感谢您的帮助。
  • 嗨 Slackr。我确实接受了您的解决方案,但显然我没有足够的声誉点来显示它。再次感谢您的帮助!
  • 刚刚对此进行了测试,并收到错误消息:“Args[0]:术语“Args[0]”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在 line:2 char:11 "。代码如下: 1 Function GoSub { 2 $var = Args[0] 3 # 4 $Answer = $Var * ($Var - 1) 5 echo $Answer 6 } # $Var = 5 GoSub $Var $Var = 10 GoSub $Var $Var = 20 Gosub $Var
  • 它确实可以省略第 2 行代码如下: 1 Function GoSub { 2 ### $var = Args[0] ### 删除此行 3 # 4 $Answer = $Var * ( $Var - 1) 5 echo $Answer 6 } 7 # 8 $Var = 5 9 GoSub $Var 10 $Var = 10 11 GoSub $Var 12 $Var = 20 13 Gosub $Var
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
相关资源
最近更新 更多