如何在cmd.exe的命令行参数中包含goto标签?

Chr*_*ris 3 cmd batch-file

有谁知道如何在传递给cmd.exe的命令字符串中包含goto标签?

像这样的东西:

cmd.exe /c ":retry & copy /y new_file.exe file.exe & if [%errorlevel%]==[1] goto :retry" 
Run Code Online (Sandbox Code Playgroud)

dbe*_*ham 5

您可以通过将命令置于无限循环中来完成逻辑,并在成功时将其退出.我不确定我是否推荐这个,因为错误可能导致真正的无限循环.

cmd.exe /c "for /l %N in () do @copy /y new_file.exe file.exe && exit"
Run Code Online (Sandbox Code Playgroud)

我想你可以添加一个在N次尝试失败后退出的计数器.以下是成功后立即退出的示例,如果失败3次也会退出.

cmd.exe /c "for /l %N in () do @copy /y new_file.exe file.exe && exit || >nul 2>&1 set /a 1/((failCnt+=1)%3) || exit"
Run Code Online (Sandbox Code Playgroud)