避免批处理文件中的长行代码

时间:2016-10-02 11:31:34

标签: batch-file lines

应该是一个简单的。我已经批量生效,但我认为它包含了过长的句子。我不得不玩括号,但很快意识到我不明白我在做什么。任何提示都会很棒。

这是代码

msiexec.exe /norestart /qn /x {3EBE26E0-8630-4351-B18F-06AB4067AC49} || Echo Driver Already Removed or Not Exist! && (pause) && If "%drvtype%" == "grundig" (goto drivers)

正如你所看到的那样,它似乎太长了,只要我将ELSE移到任何地方或将其括起来,代码就会中断,我就会陷入困境。我该怎么做才能打破它 分成更小的块。谢谢!

感谢您的帮助。我想知道我是否可以将其应用于其他可以缩短的句子。我尝试了下面的一行,但我再次超出了我的深度。我想知道你是否不能使用|| (如果失败则运行)&& (成功运行)角色?也许使用不同的护发素?

msiexec.exe /norestart /qn /x {07A1C1F1-52A2-49F4-A413-FF9A4FC3EDB6} || ( 
Echo   Olympus Driver Already Removed or Not Exist! Press Space Bar to Continue 
) && pause>nul && (If "%drvtype%" == "olympus" (goto drivers) 
    )
)

设法用这个来做...谢谢!!

{{1}}

1 个答案:

答案 0 :(得分:3)

您可以像这样编写脚本:

IF "%deletetype%" == "prompt" (
    for /d /r "C:\test" %%a in (*Folder*) do (
        if exist "%%a" rmdir /s "%%a"
    )
) ELSE (
    for /d /r "C:\test" %%a in (*Folder*) do (
        if exist "%%a" rmdir /s /q "%%a"
    )
)

if-else语句的关键是让ELSE与IF的右括号位于同一行。