简体   繁体   English

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

[英]How do I stop my batch file from printing the code it is running?

I have the following script: 我有以下脚本:

FOR %%i IN (1 2 3) DO (     
    IF %%i==1 ( 
       ECHO %%i 
    )
    IF %%i==2 ( 
       ECHO %%i 
    )
    IF %%i==3 ( 
       ECHO %%i 
    )
)

I just wanted to print 我只是想打印

1
2
3

because I will be using the same logic again to write a more complete task ... I'm not a Windows guy, and I have no idea how to do it in batch . 因为我将再次使用相同的逻辑来编写更完整的任务...我不是Windows专家,也不知道如何batch执行该任务。 Instead I'm getting: 相反,我得到:

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

To avoid echoing the Windows commands in a shell script, use @echo off : 为了避免在外壳程序脚本中回显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 
    )
)

Note the preceding @ in echo off prevents echo off from echoing. 请注意,前面的@ in echo off可以防止echo off回显。 If you don't have the @ then you'll see echo off echoed to the terminal but then echoing will be off after that point. 如果您没有@那么您会看到echo off回显到终端,但是在该点之后回显将关闭。 A shell command which is preceded by @ is not echoed. 不回显以@开头的shell命令。 So @ can be used to prevent echoing of individual commands. 因此@可以用来防止回显单个命令。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM