批处理文件错误,显示ECHO关闭



我已经写了这个批处理文件代码,但它有这个错误,如果你回答我,我很感激。

错误是,当我选择2时,它会要求我输入愿望网站,但当我写地址时,它有一个错误,说ECHO关闭

帮我该怎么办…

@echo off
title trace
:main
echo 1)TRACE GOOGLE
echo 2)TRACE YOUR SITE
set /p choice=          Enter your choice:
echo %choice%
if %choice%==1 ( 
  tracert www.google.com
  goto main
  pause >nul
)
if %choice%==2 (
  set /p s=Enter your desired site:
  echo %s%
  pause >nul
)
pause >nul

这不是错误消息,而是在没有参数的情况下运行echo时会发生的情况。换句话说,您看到这一点是因为%s%最终是空的。

要解决问题,请使用enabledelayedexpansion,因为在块中%将扩展到块之前的值:

@echo off
setlocal enabledelayedexpansion
title trace
:main
echo 1)TRACE GOOGLE
echo 2)TRACE YOUR SITE
set /p choice=          Enter your choice:
echo %choice%
if %choice%==1 ( 
  tracert www.google.com
  goto main
  pause >nul
)
if %choice%==2 (
  set /p s=Enter your desired site:
  echo !s!
  pause >nul
)
pause >nul

哪个应该工作

当您在开始时有@echo off,并且您回显一个空的var时,将得到此消息。试着检查你的回应变量,确保它们不是空的。

最新更新