Batch file 我所有的批处理文件问题都表明语法不正确

Batch file 我所有的批处理文件问题都表明语法不正确,batch-file,cmd,Batch File,Cmd,我试着用记事本作为批处理文件的创建者进行一次随意的对话,但无论我搜索和尝试什么,它总是说命令的语法是错误的。我只是做了一次,然后去测试它,它出现了。我试过在不同的线路上做其他事情,然后设置/p。。。但它从来都不起作用。我在干什么;我只想继续我的娱乐项目。谢谢: %echo off set /p name="Hello, what's your name?" set /p S?1="Oh, well: hello %name%! Is that what you would like me to

我试着用记事本作为批处理文件的创建者进行一次随意的对话,但无论我搜索和尝试什么,它总是说命令的语法是错误的。我只是做了一次,然后去测试它,它出现了。我试过在不同的线路上做其他事情,然后设置/p。。。但它从来都不起作用。我在干什么;我只想继续我的娱乐项目。谢谢:

%echo off
set /p name="Hello, what's your name?"
set /p S?1="Oh, well: hello %name%! Is that what you would like me to call you? (Y/N)"
if /i "%S?1?%" EQU "Y" goto :Yes
if /i "%S?1%" EQU "N" goto :No
goto :No answer
:Yes
echo Okay! Just making sure so I do not get on your nerves!
goto :Next1
:No
set /p name="Oh, then what shall I call you, then?"
echo Oh, alright. I will cal you %name% from now on! Sorry.
goto :Next1
:No answer
echo Sorry, but I do need an answer.
timeout 1
:No answer again
set /p S?2=So, is that what you would like me to call you? (Y/N)
if /i "%S?2%" EQU "Y" goto :Yes
if /i "%S?2%" EQU "N" goto: No
goto :No answer again
:Next1
pause

去掉第四行多余的问号(打字错误)

然后更改标签

标签是没有空格的单个字符串,因此其中一些返回到:No,因为它看到“No”、“No-Answer”和“No-Answer”是相同的。
我建议你把它们改成::不:回答:再次

%echo off
最后应该读
@echo off
;但是,对于调试,您应该删除这一行,以查看变量扩展到的字符串以及实际执行的代码行;此外,不要双击批处理文件的图标来运行批处理文件;相反,打开一个新的命令提示符窗口,键入批处理文件的(路径)并按enter键,使窗口保持打开状态,显示任何潜在的错误消息……我不太明白您在说什么,因为我只是一个代码新手,但这也不能回答我的问题。不过别担心,我现在已经把它整理好了!至少感谢您尝试帮助我,我非常感谢。我的评论不是答案,我试图帮助您调试代码:1。按Win+\R,然后键入
cmd
并按Enter键,将出现Windows命令提示窗口;在批处理文件中键入(带引号的)完整路径(例如,
“C:\My Scripts\test.bat”
),然后按Enter键运行它;完成后,窗口保持打开状态,显示批处理文件的输出;双击Windows资源管理器中的批处理文件可以让窗口在执行后关闭,因此调试是不可能的…2。只要批处理脚本顶部没有任何行
@echo off
,命令提示符窗口中的每一行/代码块都会被回显(输出),所有变量(如
%VAR%
)都会被实际值替换;这对调试有很大帮助;一旦脚本运行,您可能希望阻止它回显每个命令,因此请在第一行中关闭
@echo
,哦,很抱歉。只是错误消息不是很详细,这种方式只需要稍微长一点,所以我将继续双击。不过谢谢你。我只是来查看我的帖子,看看我是否有回复,并在修复后对其进行编辑,但我正要添加另一篇帖子,询问我的“是”答案有什么问题,因为即使我添加了“是”,它也只是转到:不,所以谢谢!如果我再次挣扎的话,我会再发一次,因为我正要继续。我将为另一个错误发一篇新的帖子,我会很快添加链接,但你能看看你是否能解决它吗?谢谢谢谢