我该如何浓缩这个?
How do I condense this?
实际上比这要长得多。这样做的更好方法是什么?我正在尝试编写一个查看文件并确定要转到哪个脚本的决策程序。
IF EXIST *x71c48* (GOTO script-a) else goto script-b
IF EXIST *x72c48* (GOTO script-a) else goto script-b
IF EXIST *x73c48* (GOTO script-a) else goto script-b
IF EXIST *x74c48* (GOTO script-a) else goto script-b
IF EXIST *x75c48* (GOTO script-a) else goto script-b
IF EXIST *x76c48* (GOTO script-a) else goto script-b
IF EXIST *x77c48* (GOTO script-a) else goto script-b
IF EXIST *x78c48* (GOTO script-a) else goto script-b
IF EXIST *x79c48* (GOTO script-a) else goto script-b
IF EXIST *x80c48* (GOTO script-a) else goto script-b
IF EXIST *x81c48* (GOTO script-a) else goto script-b
IF EXIST *x82c48* (GOTO script-a) else goto script-b
IF EXIST *x83c48* (GOTO script-a) else goto script-b
IF EXIST *x84c48* (GOTO script-a) else goto script-b
IF EXIST *x85c48* (GOTO script-a) else goto script-b
IF EXIST *x86c48* (GOTO script-a) else goto script-b
IF EXIST *x87c48* (GOTO script-a) else goto script-b
IF EXIST *x88c48* (GOTO script-a) else goto script-b
IF EXIST *x89c48* (GOTO script-a) else goto script-b
IF EXIST *s20c48* (GOTO script-a) else goto script-b
由于您的脚本当前已设置,它只会执行第一行。如果你的意思是:
IF EXIST *x71c48* (
GOTO script-a
) else IF EXIST *x72c48* (
GOTO script-a
) else IF EXIST *x73c48* (
GOTO script-a
) else IF...
rem etc. etc. etc.
... else goto script-b
...然后您可以使用 findstr
正则表达式和条件执行来缩短它。
dir /b | findstr /i "x[0-9][0-9]c[0-9][0-9]" >NUL && goto script-a || goto script-b
您也可以使用 for /L
循环。
setlocal enabledelayedexpansion
for /L %%I in (0,1,99) do (
set "int=0%%I"
if exist *x!int:~-2!c48* goto script-a
)
goto script-b
实际上比这要长得多。这样做的更好方法是什么?我正在尝试编写一个查看文件并确定要转到哪个脚本的决策程序。
IF EXIST *x71c48* (GOTO script-a) else goto script-b
IF EXIST *x72c48* (GOTO script-a) else goto script-b
IF EXIST *x73c48* (GOTO script-a) else goto script-b
IF EXIST *x74c48* (GOTO script-a) else goto script-b
IF EXIST *x75c48* (GOTO script-a) else goto script-b
IF EXIST *x76c48* (GOTO script-a) else goto script-b
IF EXIST *x77c48* (GOTO script-a) else goto script-b
IF EXIST *x78c48* (GOTO script-a) else goto script-b
IF EXIST *x79c48* (GOTO script-a) else goto script-b
IF EXIST *x80c48* (GOTO script-a) else goto script-b
IF EXIST *x81c48* (GOTO script-a) else goto script-b
IF EXIST *x82c48* (GOTO script-a) else goto script-b
IF EXIST *x83c48* (GOTO script-a) else goto script-b
IF EXIST *x84c48* (GOTO script-a) else goto script-b
IF EXIST *x85c48* (GOTO script-a) else goto script-b
IF EXIST *x86c48* (GOTO script-a) else goto script-b
IF EXIST *x87c48* (GOTO script-a) else goto script-b
IF EXIST *x88c48* (GOTO script-a) else goto script-b
IF EXIST *x89c48* (GOTO script-a) else goto script-b
IF EXIST *s20c48* (GOTO script-a) else goto script-b
由于您的脚本当前已设置,它只会执行第一行。如果你的意思是:
IF EXIST *x71c48* (
GOTO script-a
) else IF EXIST *x72c48* (
GOTO script-a
) else IF EXIST *x73c48* (
GOTO script-a
) else IF...
rem etc. etc. etc.
... else goto script-b
...然后您可以使用 findstr
正则表达式和条件执行来缩短它。
dir /b | findstr /i "x[0-9][0-9]c[0-9][0-9]" >NUL && goto script-a || goto script-b
您也可以使用 for /L
循环。
setlocal enabledelayedexpansion
for /L %%I in (0,1,99) do (
set "int=0%%I"
if exist *x!int:~-2!c48* goto script-a
)
goto script-b