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

Batch file 避免批处理文件中的长代码行,batch-file,lines,Batch File,Lines,这应该很容易。我已经做了一批,但我认为它包含过长的句子。我不得不玩弄括号,但很快意识到我不明白自己在做什么。任何提示都很好 这是密码 IF "%deletetype%" == "prompt" (for /d /r "C:\Users" %%a in (*Folder*) do if exist "%%a" rmdir /s "%%a") ELSE (for /d /r "C:\Users" %%a in (*Folder*) do if exist "%%a" rmdir /s /q "%%a

这应该很容易。我已经做了一批,但我认为它包含过长的句子。我不得不玩弄括号,但很快意识到我不明白自己在做什么。任何提示都很好

这是密码

IF "%deletetype%" == "prompt" (for /d /r "C:\Users" %%a in (*Folder*) do if exist "%%a" rmdir /s "%%a") ELSE (for /d /r "C:\Users" %%a in (*Folder*) do if exist "%%a" rmdir /s /q "%%a")
IF "%deletetype%" == "prompt" (for /d /r "C:\Documents and Settings" %%a in (*Folder*) do if exist "%%a" rmdir /s "%%a") ELSE (for /d /r "C:\Documents and Settings" %%a in (*Folder*) do if exist "%%a" rmdir /s /q "%%a")
正如你所看到的,它似乎太长了,只要我移动到其他地方或将其括起来,代码就会中断,我就被卡住了。我能做些什么来打破它 分成小块。谢谢大家!

谢谢你的帮助。我想知道我是否可以把这个应用到其他可能与缩短有关的句子中。我试着用下面这条线,但我又做不到了。我想知道您是否不能使用| |(失败时运行)和&(成功时运行)字符来实现这一点?也许换一种护发素

msiexec.exe /norestart /qn /x {3EBE26E0-8630-4351-B18F-06AB4067AC49} || Echo Driver Already Removed or Not Exist! && (pause) && If "%drvtype%" == "grundig" (goto drivers)
设法做到了这一点…谢谢

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) 
    )
)

您可以这样编写脚本:

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的右括号放在同一行。

非常有效,谢谢!!作为理解的一点,括号是否使IF语句认为它在同一行上,但它不是真的?将其视为一条“逻辑线”。
cmd
解析器确实将其视为一行。