Dos脚本 - 如何获取静默但是显示被调用的命令

Ham*_*jan 0 scripting batch-file

脚本示例:

@SET APPLY_ORA=YES
@REM ...
IF %APPLY_ORA%==YES (
@ECHO Doing Oracle
CALL %SOME_ORACLE_SPECIFIC_COMMAND% %SOME_ORACLE_SPECIFIC_FLAGS%
CALL %ANOTHER_ORACLE_SPECIFIC_COMMAND% %SOME_ORACLE_SPECIFIC_FLAGS%
) ELSE (
@ECHO Skipping Oracle
)
Run Code Online (Sandbox Code Playgroud)

我的想法是,我不希望看到IF YES == YES()ELSE()打印,特别是因为它被分成多行.但我想看到CALL后面的实际命令打印到屏幕上.

现在,我可以通过在前面附加一个来使IF变得沉默 但是这太沉默了!我没有看到正在使用的实际命令,只看到它们的输出.使用Dos Scripting时,如何达到完美的程度.谢谢!@IF

rec*_*ive 6

首先关闭echo,然后在想要查看命令时关闭.

@echo off
@SET APPLY_ORA=YES
@REM ...
IF %APPLY_ORA%==YES (
    @ECHO Doing Oracle
    @echo on
    CALL %SOME_ORACLE_SPECIFIC_COMMAND% %SOME_ORACLE_SPECIFIC_FLAGS%
    CALL %ANOTHER_ORACLE_SPECIFIC_COMMAND% %SOME_ORACLE_SPECIFIC_FLAGS%
) ELSE (
    @ECHO Skipping Oracle
)
Run Code Online (Sandbox Code Playgroud)