cmd goto命令 流程跳转_DOS/BAT

如果对不同的情况,需要执行不同的既定操作,若还是按照常规的执行流程的话,是无法完成任务的,这个时候,就需要引入流程跳转的概念,动用流程跳转语句 goto 了。流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块。

  先来看个例子:假设需要判断用户输入的是A还是B,代码可以写成这样:

复制代码 代码如下:

@echo off
set /p input=请输入字母A或B:
if "%input%"=="A" goto A
if "%input%"=="B" goto B
pause
exit

:A
echo 您输入的字母是A
pause
exit

:B
echo 您输入的字母是B
pause
exit   

按照一般的执行流程,所有的代码都会自上而下逐行执行一次,结果将显示"您输入的字母是A"和"您输入的字母是B"这两行内容,很显然,这是达不到我们的要求的;但是,实际的结果是:如果您输入的字母非A即B,则结果只会显示"您输入的字母是A"或者"您输入的字母是B";也就是说,代码的执行顺序发生了改变,不再一成不变地自上而下逐行执行了:当输入字母A后,将执行第一条if语句,此条语句执行后,将跳转到标签段:A,从而绕过了第一条if语句和:A之间的所有代码行;当输入字母B后,将执行头两条if语句,当执行完第二条if语句后,将跳转到标签段:B,从而绕过了第二条if语句和:B之间的所有代码行。

  从上面的例子可以看到,要让goto语句起作用,还需要:A或:B之类的标签段的配合。所谓的标签段,就是这样的一些代码块:在首行上以单个冒号打头,其后紧跟一串字符,第二行及其之后的所有行为代码语句行。在这里,第一行的冒号是标签标志,紧跟它之后的字符串是标签名,两者合称标签。goto语句后面的部分为标签名,指引着该语句执行完之后该跳到转何方,标签则接收goto语句的跳转指令,引导着goto语句的后续操作。goto语句和标签互相呼应,在实现流程跳转时相辅相成,缺一不可。

  下面说一下使用跳转语句goto的注意事项:

  1、goto语句和标签要互相呼应,不能只有goto语句而没有相应的标签段,否则,程序将找不到相应的标签段而直接退出;只有标签段而没有goto语句是允许的,但不能实现流程跳转功能,从代码精简的角度来看,有标签段而没有goto语句,则此标签是多余的,可以精简掉;
  2、若有多个标签段,则需要注意标签段之间是否需要添加合适的退出语句来终止程序继续向下执行,这是很多新手很容易犯错的地方,需要谨慎。以上面这段代码为例,如果去掉:A和:B之间的exit语句,那么,当输入字母A之后,结果将同时显示"您输入的字母是A"和"您输入的字母是B"这两行内容,而保留exit语句将只会在显示"您输入的字母是A"后,按任意键推出批处理程序,因为批处理是自上而下逐行执行的,即使用goto语句跳转之后,在新的位置上,这一执行流程仍然会保持,直到碰上另一个流程跳转语句,执行过程并不会在两个标签段之间自动终止。
  3、标签名只可以使用常量,而不能使用变量;
  4、若有同名的标签段,将执行位于最顶层的标签段,其后的标签段是否得到执行,将视具体的情况加以处理。

时间: 2024-09-15 15:45:17

cmd goto命令 流程跳转_DOS/BAT的相关文章

cd命令 目录跳转_DOS/BAT

例如,我们打开命令行窗口的时候,一般是这样操作的:在桌面左下角找到"开始"菜单,打开"运行",输入"cmd",回车.这个时候,命令行窗口默认的当前目录位于当前用户所在的路径下,比如:C:\Documents and Settings\JM,如下图所示.一般而言,这个目录下并没有我们想要处理的文件,我们很可能需要跳转到其他目录,比如说:C盘根目录,这个时候,我们就需要使用cd来实现目录的跳转了:cd c:\. cd的全称是Change Direct

cmd rd命令 删除文件夹_DOS/BAT

答案是否定的,因为删除文件夹必须使用rd命令,这叫术业有专攻^_^. rd的另外一个写法是rmdir,源自ReMakeDirectory.使用的方法也很简单:rd 文件夹名 即可,例如:rd test.它支持带路径的文件夹名,例如:rd d:\test. 有时候,rd并不能很好地完成任务:你让它删除test文件夹,它却傲慢地向你翻白眼:目录不是空的.不过,这也不能怨它偷懒不干活,只是它的脾气有点怪:如果要删除的文件夹下面还有子文件,你得给rd戴顶高帽,加个 /s 参数,它才会高高兴兴地帮你做事,

cmd fsutil 命令新建空文本文件_DOS/BAT

fsutil /?的帮助内容 behavior 控制文件系统行为 dirty 管理卷的被损坏的位数 file 文件特定命令 fsinfo 文件系统信息 hardlink 硬链接管理 objectid 对象 ID 管理 quota 配额管理 reparsepoint 重分析点管理 sparse 稀疏文件控制 usn USN 管理 volume 卷管理 fsutil file /?的帮助内容 ---- 支持的 FILE 命令 ---- findbysid 根据安全标识符查找文件 queryalloc

cmd NTSD命令用法详解_DOS/BAT

用法为打开cmd 后输入以下命令就可以结束进程: 方法一:利用进程的PID结束进程 命令格式:ntsd -c q -p pid 命令范例: ntsd -c q -p 1332 (结束PID为1332的explorer.exe进程) 范例详解:explorer.exe的pid为1332,但是如何获取进程的pid呢?在CMD下输入TASKLIST就可以获取当前任务管理器所有进程的PID(并不是所有的exploer.exe进程都是1332) 方法二:利用进程名结束进程 命令格式:ntsd -c q -

cmd md命令 创建文件夹_DOS/BAT

例如:md d:\test,也可以用 md test 在当前路径下建立test文件夹. 如果要创建的文件夹带有空格或&,需要用引号把文件夹名括起来,例如:md "test abc".md "abc&xyz".如果不使用引号,又会带来什么后果呢? 测试的结果是: 1.如果文件夹名带空格,那么,md test abc 语句会在当前目录下创建test和abc这两个文件夹:利用这个特点,我们有时候可以收到化繁为简的奇效:如果要创建abc def xyz这三个

用vbs实现cmd多命令运行功能代码_DOS/BAT

on error resume next  do while d<>"520"  d=inputbox("请输入命令,多个命令用&连接.关闭该VB窗口命令520")  set q=createobject("scripting.filesystemobject")  set a=WScript.CreateObject("WScript.Shell")  a.run "%Comspec% /c&q

写批处理必备的一些命令参数使用技巧_DOS/BAT

 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件. 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令.当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的.批处理的程序

常用批处理内部命令使用详解_DOS/BAT

批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令. 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程. 了解了大概意思后,我们正式开始学习.先看一个简单的例子! @echo off echo "欢迎来到非常BAT!" pause 把上面的3条命令保存为文件test.bat或者test.cmd然后执行, 他就会在屏幕上显示以下二行话: 欢迎来到非常BAT! 请按任意键继续. .

dos 流程跳转 goto_DOS/BAT

如果对不同的情况,需要执行不同的既定操作,若还是按照常规的执行流程的话,是无法完成任务的,这个时候,就需要引入流程跳转的概念,动用流程跳转语句 goto 了.流程跳转的含义是:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块. 先来看个例子:假设需要判断用户输入的是A还是B,代码可以写成这样: @echo off set /p input=请输入字母A或B: if "%input%"=="A" goto A if "%input%"==&