如何阻止我的batch file打印正在运行的代码?

我有以下脚本:

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命令没有被回显。 所以@可以用来防止单个命令的回显。