cyb*_*ron 13 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
)
)
Run Code Online (Sandbox Code Playgroud)
我只想打印
1
2
3
Run Code Online (Sandbox Code Playgroud)
因为我将再次使用相同的逻辑来编写更完整的任务......我不是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
Run Code Online (Sandbox Code Playgroud)
lur*_*ker 33
要避免在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
)
)
Run Code Online (Sandbox Code Playgroud)
请注意前面@的内容echo off可防止echo off回显.如果您没有,@那么您将看到echo off回显到终端,但在此之后回声将关闭.前面@没有回显的shell命令.因此@可用于防止单个命令的回显.