【问题标题】:batch file ERROR which says ECHO IS OFF [duplicate]批处理文件错误,说 ECHO 已关闭 [重复]
【发布时间】:2014-08-28 04:26:50
【问题描述】:

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

错误是,当我选择 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

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    这不是错误消息,它是当您运行echo 时不带参数时发生的情况。换句话说,你看到这个是因为%s% 最终是空的。

    【讨论】:

    • 那么为什么 %s% 是空的?当我向它输入 sth 时?
    【解决方案2】:

    要解决您的问题,请在块中使用 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
    

    哪个应该起作用

    【讨论】:

    • okey thnx 回答我的问题,但你没有说我有什么区别!s!和 %s%
    【解决方案3】:

    当您在开始时有@echo off,并且您回显一个空变量时,会收到此消息。尝试检查您的回显变量,确保它们不为空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-18
      • 2013-09-25
      • 2018-07-09
      • 2010-11-12
      • 1970-01-01
      • 2018-04-21
      • 2019-07-09
      • 2014-02-26
      相关资源
      最近更新 更多