如何阻止我的批处理文件打印正在运行的代码?

时间:2013-10-03 00:21:43

标签: windows 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

1 个答案:

答案 0 :(得分:31)

要避免在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命令。因此@可用于防止单个命令的回显。