我有以下脚本:
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
答案 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命令。因此@
可用于防止单个命令的回显。