我已经写了这个批处理文件代码,但它有这个错误,如果你回答我,我很感激。
错误是,当我选择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时,将得到此消息。试着检查你的回应变量,确保它们不是空的。