我正在尝试编写一个简单的批处理文件来运行Tracert命令,如果用户希望跟踪本地设备列表,用户可以输入,在这种情况下,userResponse等于y,或者如果他没有,则输入在哪种情况下它等于n。当我启动应用程序时,会出现输入y或n的提示,无论我写什么,都会显示错误消息“如果此时出现意外情况”,屏幕会快速关闭。浏览Stack Overflow一段时间后,我尝试了以下修复:
SETLOCAL ENABLEDELAYEDEXPANSION
但这些解决方案都没有奏效。
这是代码。
@echo off
color A
title Trace Route
SETLOCAL ENABLEDELAYEDEXPANSION
set /p userResponse="Would you like a list of local devices to trace (y/n)? "
if %userResponse%==y (
net view
set /p IPAddress="Enter the IP address that you would like to trace: "
echo.
set /p addressType="Enter the IP Address type (4 or 6): "
tracert -%addressType% %IPAddress%
PAUSE
) if %userResponse%==n (
set /p IPAddress="Enter the IP address that you would like to trace: "
echo.
set /p addressType="Enter the IP Address type (4 or 6): "
tracert -%addressType% %IPAddress%
PAUSE
)
我是Stack Exchange的初学者,如果缺少任何信息,请原谅我。我会根据要求快速添加它。
谢谢!
答案 0 :(得分:1)
您只需在行的开头使用if
,而不是
) if %userResponse%==n (
使用
)
if %userResponse%==n (
批次是一种严格的括号。请注意,您也无法使用
if %userResponse%==n
(
开始括号需要与if语句在同一行