【发布时间】:2016-05-07 20:54:47
【问题描述】:
我只是在学习如何在 cmd 中编写代码,但由于某种原因,那里的教程无法在我的计算机上运行。我试图运行以下程序,但它一直在我身上失败。
::My first program
@echo off
:main menu
cls
echo what are you doing?
echo.
echo 1) Nothing :-P
echo 2) dancing
echo.
set /p var="Choose answer:"
if %answer% == 1 goto nothing
if %answer% ==2 goto dancing
:nothing
echo ok...chill
:dancing
echo nice
echo on
【问题讨论】:
-
我回滚了您的编辑,因为您删除了进行该编辑时存在的问题。收到问题的答案后,您无法对问题进行实质性更改,因为您可以通过更改使这些答案无效。
-
::是一个标签。注释命令为REM用于备注。从正确而不是错误地开始做事。 -
是的,你不能在“文档”中的任何地方告诉我它也不支持不。那是因为该语言的文档极差(事实上,唯一的官方文档来自
help命令——即使 ss64 也是非官方的)。看,我也可以转移举证责任,尽管这并没有使它成为一个谬误的论点。我给了你一个链接,指向可用的最佳解释之一。如果您了解该问题中列出的注意事项,那么您就可以使用任一选项。 -
我承认在某些情况下
rem有效而::无效,并且与任何语言一样,在使用它们之前应该注意陷阱。但几十年来,::一直是一种广为人知和接受的在批处理文件中添加评论的方式。虽然您可能会考虑在某些情况下使用::来打自己的脚,但在这种语言中,它几乎算不上致命的伤口,可以让您以多种方式比喻性地炸掉自己的腿。 -
事实上,有这么多更好的替代批量预安装在 Windows 上(VBScript、PowerShell、bash 很快),还有这么多其他的快速安装,可以说 Teaching人们批量做事情是错误的,我们应该警告人们完全远离该语言,而不是对其评论语句的纯度提出质疑。
标签: batch-file cmd goto