我有以下脚本:
FOR %%i IN (1 2 3) DO ( IF %%i==1 ( ECHO %%i ) IF %%i==2 ( ECHO %%i ) IF %%i==3 ( ECHO %%i ) )
我只是想打印
1 2 3
因为我将再次使用相同的逻辑来写一个更完整的任务…我不是一个Windows的家伙,我不知道如何batch
做。 相反,我得到:
c:\>FOR %i IN (1 2 3) DO ( IF %i == 1 (ECHO %i ) IF %i == 2 (ECHO %i ) IF %i == 3 (ECHO %i ) ) c:\>( IF 1 == 1 (ECHO 1 ) IF 1 == 2 (ECHO 1 ) IF 1 == 3 (ECHO 1 ) ) 1 c:\>( IF 2 == 1 (ECHO 2 ) IF 2 == 2 (ECHO 2 ) IF 2 == 3 (ECHO 2 ) ) 2 c:\>( IF 3 == 1 (ECHO 3 ) IF 3 == 2 (ECHO 3 ) IF 3 == 3 (ECHO 3 ) ) 3
要避免在shell脚本中回显Windows命令,请使用@echo off
:
@ECHO OFF FOR %%i IN (1 2 3) DO ( IF %%i==1 ( ECHO %%i ) IF %%i==2 ( ECHO %%i ) IF %%i==3 ( ECHO %%i ) )
注意前面的@
在echo off
防止echo off
回声。 如果你没有@
那么你会看到echo off
回显到终端,但回声将在此之后关闭。 @
之前的shell命令没有被回显。 所以@
可以用来防止单个命令的回显。