【问题标题】:batch: continue previous table?批处理:继续上一个表?
【发布时间】:2016-01-22 17:13:49
【问题描述】:

我一直在谷歌搜索,但找不到任何答案,所以我决定在这里发布另一篇文章。 我想要实现的是,可以说:您的脚本工作当前正在使用标签 5,但在此标签中您想调用另一个标签。假设标签 1。标签 1 的设置是转到标签 2。但是当您通过标签 5 调用标签 1 时,标签 1 将忽略这一点,并且当您按 Enter 键时。您将返回标签 5。并继续“你离开”的地方并进入label6。举个例子。这是一个可能的功能吗?如果是这样的话。如何做到这一点?

:标签1 转到标签 2

:标签 2 转到标签 3。 :标签3 转到标签4 :标签4 转到标签5

:标签5 呼叫标签 1 (返回标签5) 转到标签 6

:标签6

【问题讨论】:

    标签: batch-file call labels


    【解决方案1】:

    你想要call 而不是goto。它返回goto :eof。你可能必须改变你的逻辑来实现它。

    @echo off
    echo now we jump through the code...
    call :label1
    echo here again
    call :label2
    echo again here. Let's call label1 again.
    call :label1
    echo finished.
    goto :eof
    
    :Label1
    echo you called Label1
    goto :eof
    
    :Label2
    echo you called Label2
    goto :eof
    

    【讨论】:

    • 您需要一个 Label2。 ;)
    • 好的,所以我在你的脚本上运行了它,它可以工作。这是我需要的概念。但恐怕我不明白这到底是如何工作的。那么有没有人可以为我分解逻辑并让我理解它?如果我不了解它的实际工作原理,恐怕我无法使用这个聪明的想法:P
    • OH WAIT 我想我明白了!!!!.. 但是我得到了这一行: IF %Q%==/cmd.help call :helpcmd & pause>nul & goto networkscan 很明显没有成功....我需要如何更改此行以使其正常工作? (我猜 c# 方法没有成功)xDD
    • 您的线路调用:help,返回,继续使用pause,按键后转到networkscan。正是我所期望的。
    猜你喜欢
    • 2021-03-24
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多