当前位置:首页 » 编程软件 » 编程常用句式

编程常用句式

发布时间: 2022-12-13 17:14:10

1. 想学习编程但是我不会英语怎么办

经常有同学问:我英语不好,编程好像都是英文写的,我能学编程吗?

其实这里有一个小常识,英语是世界上最通用的语言,而计算机编程语言又是老外发明的,所以所有的计算机编程语言才都是采用英文编码。

接着回答开头的问题:英语不好可以学编程吗?

其实刚开始学编程是不需要太高深的知识和英语基础的,所以大家可以放心。如果你英文水平不高,这并不影响你做程序员,编程主要是靠逻辑思维,数学建模。

而且学习编程,常用的单词就那么多,只要把常见的单词学会,你的代码也能写得很好。

只是读文档的时候可能对英语要求稍微高点,但是你也别忘记还有有道词典、谷歌翻译呀。而且在开始阶段,压根不用担心太多,你学的都是现成的,大不了不懂就查。

比如“if” “else” “while” “for” “var” “new”之类。用得多了自然而然地就记住了。

CSS 里英语就更重要了,比如 transition、transform、translate,你在不了解英语含义的情况下,很难把这些记下来。

而且到了后期,你可能还需要读国外开发者分享的文档和技术,甚至有不懂的技术,也需要你去国外网站上查,这时候机器翻译就不大好使了。

所以作为开发者如何学好英语呢?

首先要明白的一点是,常规英语和计算机英语的不同。

常规英语的学习,包含很多方面,有语法,音标,词汇量等知识面,因此需要背大量的单词、语法,还要会听说读写,做阅读、做听力。

而且在国内,我们从小学开始学英语,十多年了都学不好,想要因为编程短期提升常规英语学习,基本上是不可能的。

然而编程所需要的英语都是十分专业的计算机英语。

简单的来说,就是通过汇编语言来让计算机明白所接受的各种指令的英语,对于绝大多数编程软件来说,它所需要用到的英文词组和词汇,都是固定的和相对简单的词组和句式。

相对于常规英语的广泛程度来说,它更像具有固定格式的专业性更强的英文写作,往往只要你熟读熟记后,对于编程是没有太大的影响。

比如简单的for next 循环,你可以不知道for和next是什么意思 ,但是你要知道这是一个循环,还要知道怎么用。

一言以蔽之,就是英语好的同学编程不一定能学好;编程好的同学,不一定英语很棒。

英语只是编程的辅助工具,而非决定性工具。

所以如何提升编程英语,我这里有两个小建议:

a) 设备上可以装翻译工具,哪里不会点哪里。

b) 抓住可以学英语的机会。比如多用英文软件,少用汉化版。比如用英文操作系统,不用中文版。这样你每天都在记单词了。

2. 我想学电脑编程,但我又是一个电脑小白(电脑基础的用法还是知道的),想请教大家指导下我该怎么学

我就是学软件的。主攻的是java和C#,但仍不可否认C语言的重要地位,我们学校任何计算机系以外的系都必须要学C语言,但是就是计算机系软件专业不学(我也不知道是怎么一回事儿),当然Java现在已经超越C语言一举成为最常用编程软件之首。
在这里我就先以Java为例,给你提一点建议:
1.你可以先买一本Java面向对象的书,从基础开始,当然也需要辅以网络上的知识来学习,像一些视频教程什么的。
2.顺序肯定是先基础开始,《java基础教程》、《java编程思想》、《head first java》......这些
都可以选择。
3.注意事项,心理一定要强健啊!真的很枯燥,而且比较复杂,学习不是只要学好基础就可以了的,必须全部都通。学java还要学 《数据结构》 以及《Java Web整合开发》,等一大套........
4.数学要好一点,以后你数学中会学算法,恩,你一定要学好!英语...其实我觉得只要你能记住那些编程句式都是用来干什么的就行。
5.编程的分类?我觉得无所谓分类啊,各种编程语言其实也都算是相通的。而且编程是用来干什么的,其实各种编程到最后达成的目的都一样,都是做出项目来!
6.至于哪一类适合哪一类人学习我就不得而知了....呵呵,总之,是要感兴趣,有毅力的人的,恩,我认为还要得细心。其实,看着自己写出的代码最后做出东西来还是很兴奋的,就是 过程很无奈....出错,调试,尤其是调试,或许你调试用的时间比你写代码的时间都长,很痛苦。
你才初中生就开始要自学编程,不得不说你真的很有觉悟,呵呵。其实,编程貌似自学成才的要比学校培养的要多得多。加油啊~

希望可以解决你的问题。

3. 在编程中写两个end if 是什么意思

在编程中写两个end if表示程序中存在if语句的嵌套,两个end if分别是两个if语句的结束语句。

编程语言中,譬如BASIC中, IF <条件> THEN <语句体> END IF 或者 IF <条件> THEN <语句体1> ELSE <语句体2> END IF的语句型式是固定的句式,即IF语句需要END IF语句来作为结束语句,表示一个条件语句的结束。

而在if语句中又包含一个或多个if语句称为if语句的嵌套,为了保证if语句的完整性与正确性,就必须为每条if语句配置end if语句来结束该条件语句,所以也就会出现前后两个end if语句的情况。

(3)编程常用句式扩展阅读:

相关的规则:

#If...Then...#Else指令的作用与If...Then...Else语句相同,其差异在于#If、#Else、#ElseIf,及#End If指令没有单独成行的形式,也就是说,在指令所在的那一行,不能有其他代码出现。

条件编译通常用来编译不同平台上的同一个程序。也可以用来避免调试程序代码出现在可执行程序中。条件编译时被排除的程序代码在最后的可执行文件中被完全略去,所以不会对程序的大小或功能有任何影响。

4. 学编程先学C语言好还是易语言好

无所谓好坏,二者对比如下:
1 C语言更难学一些。C语言与底层相关,专业性更强,同时C语言为国外发展起来的,大多数文档均为英文版,甚至部分没有中文翻译。而易语言是中文本土语言,使用操作更符合中国人习惯,上手容易。
2 应用范围不同。C语言更多应用于底层相关,应用广泛,包括各种领域。而易语言目前只应用于计算机平台。
3 C语言从创建,发展到现在已经很成熟了,全世界有无数人在使用,维护。而易语言只有中国人使用,历史要短很多,所以易语言没有C语言成熟完善。

5. 学习编程必须英语好吗英语很差劲

编程语言给人的感觉就是一个个英文字符,所以很多人在学编程前,总担心自己英语不好会导致学不好编程,更有人因此打了退堂鼓。是否英语不好就一定学不好编程呢?在这里就给大家好好梳理一下英语和编程两者的关系。

其实编程能用到的英文没有浩如烟海,大家常用的命令不算多。在JAVA等编程语言中,经常会用到的英文单词只有几百个,主要包括以下两种:

1、输出信息。国内的大牛早就把这些单词写成了中文,完全可以换成汉字,经常用到的专用名词也基本上都是缩写。

2、变量名、函数名等标识符,完全可以换个写法,比如用汉语拼音。

况且,写代码时所用的英语并不是普遍意义上使用的英语,而是计算机专用英语。你可以把它理解成是编程语言的基本单位,就像字母构成单词、偏旁部首构成文字一样,它所用到的英文词汇和词组,都是相对简单的固定词组和句式。实际掌握起来并没有那么难,只要在初期学习的时候多花功夫记熟它们,平时多敲多练,慢慢地也就熟练掌握了。

所以,“英语不好就不能编程”,完全是大家理解上的一个误区。英语不好并不是编程学习的致命障碍,也不是学编程的充分必要条件。

但是值得注意的是,对高级程序员来说,工作上需要解决的项目问题往往是之前没有接触过的,甚至是国内还比较少人涉足的。这个时候,如果你英文好(尤其是阅读能力好),就可以直接获取外国的相关文献等一手资料,获取最新的技术和资讯,学习国外的先进经验。

从这个层面来看,英语能力虽然不是学编程的必要条件,但却能给编程事业锦上添花。甚至说,编程可以在无形之中提升你的计算机英语能力。通过对编程的学习,你会对计算机英语有更深刻、清晰的认识,随着编程学习的深入,对于报错信息的英文理解也会更加透彻。

最后,给大家一个良心建议:只管去学,别问这么多。如果你真心热爱编程,其他任何问题都不是问题!

6. for(int a:i)在java 编程中是什么意思

这是for/in循环,也就是增强的for循环,你看这个例子:
public void testArrayLooping(PrintStream out) throws IOException {
int[] primes = new int[] { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29 };

// Print the primes out using a for/in loop
for (int n : primes) {
out.println(n);
}
}
就是对数组的循环查询。for/in循环的结构为:
for(
声明:
表达式)

语句
声明 是一个变量,例如 Object listElement。这个变量应该有自己的类型,这样,它就可以与将遍历的列表、数组或集合中的每一个项兼容。在清单 2 的例子中, list 包含一些对象,因此这些对象就是 listElement 的类型。

表达式 就是一个表达式。它计算的结果应当是可以遍历的(后面再详加介绍)。在现在,只要保证 表达式 计算的结果是一个集合或者数组就可以了。表达式可以简单到就是一个变量(如清单 2 所示)或者是一个方法调用(例如 getList()),亦或是包含布尔逻辑或三目运算符的复杂表达式。只要它返回一个数组或集合,就一切 OK。

语句 代表循环的内容,它对 声明 中定义的变量进行操作;当然,这是一个循环,所以 语句 将应用到数组中集合的每个项目上。而且,使用大括号( { 和 })时,还能使用多条语句。

其用法如下:创建一个变量,指向要遍历的数组或集合,然后对定义的变量进行操作。不用对列表中的每个项目进行赋值,因为 for/in 替您处理了这件事。当然,如果您还觉得不太清楚,没关系,继续读下去,有大量的示例让您足够清楚这个事件。

但是,在进行下一步之前,我想用更加符合规范的方式说明 for/in 的工作方式。清单 4 显示了在提供通用化类型时,实际发挥作用的 for/in 循环。以下是编译器把该循环转换成普通的 for 循环之后,语句实际看起来的样子。

您明白了吗?编译器实际上把这个更短、更方便的 for/in 语句变成了一个更加编译器友好的 for 循环,而且您不会受到这项工作的影响。这就是为什么我认为它方便,而不仅仅说它更简短的原因

7. java编程的问题

else if翻译成中文就是,“否则的话,如果。。。。”

意思是如果上一个条件没有满足,就判断这个if的条件。

当testscore满足>=80的时候,接下来是不会执行下一个else if的。因为它已经满足了判断条件>=80,对于下一个else if不存在否则的情形。

你要想达到你说的那样,可以去掉else,采用if句式

8. 英语都看不懂能学好编程吗

其实刚开始学编程是不需要太高深的知识和英语基础的,所以大家可以放心。如果你英文水平不高,这并不影响你做程序员,编程主要是靠逻辑思维,数学建模。

而且学习编程,常用的单词就那么多,只要把常见的单词学会,你的代码也能写的很好。



只是读文档的时候可能对英语要求稍微高点,但是你也别忘记还有有道词典、谷歌翻译呀。而且在开始阶段,压根不用担心太多,你学的都是现成的,大不了不懂就查。

比如“if” “else” “while” “for” “var” “new”之类。用得多了自然而然地就记住了。

CSS 里英语就更重要了,比如 transition、transform、translate,你在不了解英语含义的情况下,很难把这些记下来。

而且到了后期,你可能还需要读国外开发者分享的文档和技术,甚至有不懂的技术,也需要你去国外网站上查,这时候机器翻译就不大好使了。



所以作为开发者如何学好英语呢?

首先要明白的一点是,常规英语和计算机英语的不同。

常规英语的学习,包含很多方面,有语法,音标,词汇量等知识面,因此需要背大量的单词、语法,还要会听说读写,做阅读、做听力。

而且在国内,我们从小学开始学英语,十多年了都学不好,想要因为编程短期提升常规英语学习,基本上是不可能的。



然而编程所需要的英语都是十分专业的计算机英语。

简单的来说,就是通过汇编语言来让计算机明白所接受的各种指令的英语,对于绝大多数编程软件来说,它所需要用到的英文词组和词汇,都是固定的和相对简单的词组和句式。

相对于常规英语的广泛程度来说,它更像具有固定格式的专业性更强的英文写作,往往只要你熟读熟记后,对于编程是没有太大的影响。

比如简单的for next 循环,你可以不知道for和next是什么意思 ,但是你要知道这是一个循环,还要知道怎么用。

一言以蔽之,就是英语好的同学编程不一定能学好;编程好的同学,不一定英语很棒。

英语只是编程的辅助工具,而非决定性工具。

所以如何提升编程英语,我这里有两个小建议:

a) 设备上可以装翻译工具,哪里不会点哪里。

b) 抓住可以学英语的机会。比如多用英文软件,少用汉化版。比如用英文操作系统,不用中文版。这样你每天都在记单词了。

9. 只用易语言中常用的术语以及术语的含义

1.非运行语句。非运行语句包括以下几种。 (1)注释型语句易语言的注释型语句的格式是:‘ 注释语句内容注释语句不能被程序执行,只是用来解释上一行或前面代码的意思。编译时易语言不会把注释代码也编译到可执行文件中。 2.值型语句。(也可称属性型语句)特征:有一个“=”号将左右两边连起来这是大家学习易语言时首先会接触的一类语句。例如:标签1.标题 = “中文编程技术,易语言!”这句代码的意思是:标签1的标题是:“中文编程技术,易语言!”——即将标签1的标题属性值定为“中文编程技术,易语言!”(所谓赋值)。我们所见的给变量赋值就是用此类语句。赋值语句常见有以下两类:(1)将某一对象的某种属性值赋给另一对象。例如:标签1.标题 = 编辑框5.内容意思即是“标签1”的标题跟编辑框5中的内容一样。比如我们在编辑框5中输入“易语言使英语盲也学会了编程”,那么在相关事件(如单击按钮)的驱动下,标签1的标题也相应显示为“易语言使英语盲也学会了编程”。(2)将某一类型的属性值赋予某个对象。例如:标签1.标题 = “中文编程技术,易语言!”将“中文编程技术,易语言!”赋给标签1的标题。所赋予的属性值可以是各种类型的,例如:窗口1.可视 = 真这个“真”是一个逻辑型数值。如果是文本型数值要用双引号,比如刚才的例子:“汉语言编程技术,易语言!”即是。又如,我们会发现这类句子:标签2.标题 = 到文本 (取小时 (取现行时间 ())) + “:” + 到文本 (取分钟 (取现行时间 ())) + “:” + 到文本 (取秒 (取现行时间 ())) 因为标签类对象只接受文本型数据,所以要把时间型数据转化为文本型,否则测试时会提示:“所接受的数据类型与传递给它的数据类型不一致”。 有时我们会发现此类句子:变量1 = 变量1+10这个语句的意思是:“将变量1加10之后,再将新值传回给变量1”。 从这里可以看出,这里的“=”号跟数学中的“=”号在含义上是不同的,在数学中不可能出现b=b+2之类的表达式,而在易语言中这种表达式却是允许的,而且是经常运用的。另外,我们又会看到这类句子:编辑框1.高度 = 取用户区高度 ()上述程序可以理解为取得“取用户区高度 ()”的返回值(运算结果),然后将此值赋给编辑框1的高度属性。 “=”号的右边表示操控程序的命令,也即是说有时可以将系统命令、执行条件、项目、常量、子程序、函数、资源乃至其它对象的方法等,都可以当作是属性值赋给对象。 3.方法型语句。方法是一个具体对象能够执行的动作。有的方法会有参数,有的方法则不用参数,“参数”大概相当于调用这个方法的各种相关数据,包括相关对象属性值、系统命令、执行条件、项目、常量、子程序、函数乃至其他对象的方法等,都是可以调用的参数。不同的方法有不同的参数,一种方法可以有多种类型的参数。执行、调用一个对象的方法的一般格式如下: 对象名.方法名(参数1,参数2,...)例如需要在一个名为“购物篮”的列表框里添加一个叫“苹果”的列表项目,其语句如下:购物篮.加入项目(苹果)上面这句话的意思可以理解为:“将购物篮的加入项目(方法)定为苹果”。在这个例句中,“加入项目”是“购物篮”的方法,“苹果”是其参数。其中调用列表框的“加入项目”方法的句式是:列表框.加入项目 (欲加入项目的文本,[与欲加入项目相关的数值])同时我们又会发现另一类句式,比如:销毁()这个句式跟命令型句式很象,但其实它是下面这个句式的省略表达:组件.销毁()也即是说调用当前组件的方法句式可省略前面的对象名前缀,它仍然是一种方法型语句。再举另一例子:组件.弹出菜单(欲弹出的菜单,[水平显示位置],[垂直显示位置])可以省略表达成:弹出菜单 (欲弹出的菜单,[水平显示位置],[垂直显示位置])
欲查看某类组件具有哪些方法、这些方法的详细解释以及有哪些可用参数等,请到易语言设计界面的支持库面板中的“数据类型”分支中寻找。 下面列举几个调用对象方法的例子,以便让大家举一反三:(1)在程序中使用常量时其名称前必须加上“#”符号,所以如果调用的参数中有常量,就在常量前面加上“#”符号,例如:列表框1.调整层次 (#底层)(2)调用系统命令作为参数。例如:画板1.滚动写行 (数值到金额 (100, 假))这句的意思是,调用“画板1”的“滚动写行”方法。而其欲写出的数据(参数)是“数值到金额 (100, 假)”(这句的语法请看帮助),这是一种数值转换命令语句。(3)调用相关对象的属性值作为方法的参数。例句:列表框.加入项目 (编辑框1.内容,)其它用法就不一一列举了。 4.命令型语句。命令型语句跟方法型语句差不多,看看下面两者的对比就知道它们的差别了。方法型语句为:对象名称.方法名称(参数,......)而命令型语句的基本格式是:命令名称 (参数,......)“命令”的意思也跟“方法”差不多,都是一种程序运行动作指令,只不过“方法”是某个具体对象所具有的能供调用的指令,而“命令”则是整个易语言系统固有的、可以供任何程序任何对象调用的指令,所以命令名称前面没有前缀的对象名。有时候命令的参数不是必需的(即“可选的”),比如:取随机数 ([欲取随机数的最小值],[欲取随机数的最大值])“[ ]”表示该参数不是必需的。如果是这种情况,该参数可为空。比如:取随机数 ()

命令型语句的快速输入方法:在支持库面板中,双击某一个命令或方法,可快速将此命令或方法粘贴到程序行中。
下面再列举一些常见的命令以便举一反三:(1)载入窗口命令。我们想通过一个窗口启动其它窗口,可用此命令,其句式是:载入 (欲载入的窗口,[父窗口],是否采用对话框方式)它的意思请查看有关说明。(2)运行命令。使本程序或其他程序运行,其句式为:运行 (欲运行的命令行,是否等待程序运行完毕,[被运行程序窗口显示方式])。示例:运行(“C:\windows\notepad.exe”, ,假)(3)信息框命令 。有时我们想使系统反馈指令,比如弹出相关提示,但又找不到有“信息框”这个组件(组件),原来易语言是通过命令调用信息框的(类似的还有输入框命令),其格式是:信息框 (提示信息,按钮,[窗口标题])(4)关闭命令。这是一种数据库操作命令,当指定数据库操作完毕后,关闭已经被打开的指定数据库,以便清空数据变量,节约系统资源,其句式是:关闭 ([数据库别名或名称])当参数被省略时,表示关闭当前数据库。(5)结束命令。本命令结束当前易程序的运行,参数为空(无返回值),其格式是:结束 ()最后要说的是,本节只介绍了命令型的基本语句,在以后的学习中将会继续讲解命令型基本语句中的各类语句。 3.8 课后练习 (1)用“如果()”、“如果真()”、“判断()”分别实现同一个结果。看看哪一种更加方便、容易。思考一下是否因为某些功能实现结果相同,所以其它命令可以不要,只留一个“判断()”命令即可?

用计次循环可以实现。
用判断循环也可实现。
(2)用循环命令在编辑框内显示从11到20。 实际上用其它流程控制命令均可实现。

新建一个易程序,分别添加标签、编辑框、按钮、编辑框组件。
双击按钮组件后输入这些程序代码。最后试运行。
(3)试着将前述程序中的“+ #换行符”删除,运行后观察一下效果。“#换行符”是引用了一个系统常量,将在有关常量的章节中讲述。

(4)编写一个程序,计算从1到某数的累加结果。

10. bat.文件的命令语法, 句式或bat文件教程

常用命令

echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。

==== 注 ===========
首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:
CR(0D) 命令行结束符
Escape(1B) ANSI转义字符引导符
Space(20) 常用的参数界定符
Tab(09) ; = 不常用的参数界定符
+ COPY命令文件连接符
* ? 文件通配符
"" 字符串界定符
| 命令管道符
< > >> 文件重定向符
@ 命令行回显屏蔽符
/ 参数开关引导符
: 批处理标签引导符
% 批处理变量引导符

其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:
第一, 除了 :: 之外, 任何以 :开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用 goto 所无法识别的标号, 即在 :后紧跟一个非字母数字的一个特殊符号.
第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中.
=====================

echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。
==== 注 =====
此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理

-------------------------
ECHO

当程序运行时,显示或隐藏批处理程序中的正文。也可用于允许或禁止命令的回显。

在运行批处理程序时,MS-DOS一般在屏幕上显示(回显)批处理程序中的命令。
使用ECHO命令可关闭此功能。

语法

ECHO [ON|OFF]

若要用echo命令显示一条命令,可用下述语法:

echo [message]

参数

ON|OFF
指定是否允许命令的回显。若要显示当前的ECHO的设置,可使用不带参数的ECHO
命令。

message
指定让MS-DOS在屏幕上显示的正文。

-------------------

CALL

从一个批处理程序中调用另一个批处理程序,而不会引起第一个批处理的中止。

语法

CALL [drive:][path]filename [batch-parameters]

参数

[drive:][path]filename
指定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。

batch-parameters
指定批处理程序所需的命令行信息。

-------------------------------

PAUSE

暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处
理程序中使用该命令。

语法

PAUSE

REM

在批处理文件或CONFIG.SYS中加入注解。也可用REM命令来屏蔽命令(在CONFIG.SYS
中也可以用分号 ; 代替REM命令,但在批处理文件中则不能替代)。

语法

REM [string]

参数

string
指定要屏蔽的命令或要包含的注解。
=======================

例1:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。

批处理文件的内容为: 命令注释:

@echo off 不显示后续命令行及当前命令行
dir c:\*.* >a.txt 将c盘文件列表写入a.txt
call c:\ucdos\ucdos.bat 调用ucdos
echo 你好 显示"你好"
pause 暂停,等待按键继续
rem 准备运行wps 注释:准备运行wps
cd ucdos 进入ucdos目录
wps 运行wps

批处理文件的参数

批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。

例2:C:根目录下有一批处理文件名为f.bat,内容为:
@echo off
format %1

如果执行C:\>f a:
那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:

例3:C:根目录下一批处理文件名为t.bat,内容为:
@echo off
type %1
type %2

那么运行C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
于是上面的命令将顺序地显示a.txt和b.txt文件的内容。

==== 注 ===============
参数在批处理中也作为变量处理, 所以同样使用百分号作为引导符, 其后跟0-9中的一个数字构成参数引用符. 引用符和参数之间 (例如上文中的 %1 与 a: ) 的关系类似于变量指针与变量值的关系. 当我们要引用第十一个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下:

初始状态, cmd 为命令名, 可以用 %0 引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

经过1次shift后, cmd 将无法被引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8

遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针.
=================

特殊命令

if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。

一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:

1、if [not] "参数" == "字符串" 待执行的命令

参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。

例:if "%1"=="a" format a:

====

if 的命令行帮助中关于此点的描述为:
IF [NOT] string1==string2 command
在此有以下几点需要注意:
1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符
2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量
3. command 不是语法所必须的, string2 后跟一个空格就可以构成一个有效的命令行
=============================

2、if [not] exist [路径\]文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。

如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,则显示它的内容。

****** 注 ********
也可以使用以下的用法:
if exist command
device 是指DOS系统中已加载的设备, 在win98下通常有:
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: ...,
CLOCK$, CONFIG$, DblBuff$, IFS$HLP$
具体的内容会因硬软件环境的不同而略有差异, 使用这些设备名称时, 需要保证以下三点:
1. 该设备确实存在(由软件虚拟的设备除外)
2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义)
3. 该设备已准备好(主要是指a: b: ..., com1..., lpt1...等)
可通过命令 mem/d | find "device" /i 来检阅你的系统中所加载的设备
另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即指在内存中为其分配可引用的句柄.
==================================

3、if errorlevel <数字> 待执行的命令

很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。

如if errorlevel 2 goto x2

==== 注 ===========
返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:

if errorlevel 1 set el=1
if errorlevel 2 set el=2
if errorlevel 3 set el=3
if errorlevel 4 set el=4
if errorlevel 5 set el=5
...

当然, 也可以使用以下循环来替代, 原理是一致的:
for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e

更高效简洁的用法, 可以参考我写的另一篇关于获取 errorlevel 的文章

出现此种现象的原因是, if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码.

另外, 虽然 if errorlevel=<数字> command 也是有效的命令行, 但也只是 command.com 解释命令行时将 = 作为命令行切分符而忽略掉罢了
===========================

二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。

如:

goto end

:end
echo this is the end

标号用":字符串"来定义,标号所在行不被执行。

==== willsort 编注

label 常被译为 "标签" , 但是这并不具有广泛的约定性.

goto 与 : 联用可实现执行中途的跳转, 再结合 if 可实现执行过程的条件分支, 多个 if 即可实现命令的分组, 类似 C 中 switch case 结构或者 Basic 中的 select case 结构, 大规模且结构化的命令分组即可实现高级语言中的函数功能. 以下是批处理和C/Basic在语法结构上的对照:

Batch C / Basic
goto&: goto&:
goto&:&if if{}&else{} / if&elseif&endif
goto&:&if... switch&case / select case
goto&:&if&set&envar... function() / function(),sub()
==================================
三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。

注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。

choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:
该工具允许用户从选择列表选择一个项目并返回所选项目的索引。

参数列表:
/C choices 指定要创建的选项列表。默认列表是 "YN"。

/N 在提示符中隐藏选项列表。提示前面的消息得到显示,
选项依旧处于启用状态。

/CS 允许选择分大小写的选项。在默认情况下,这个工具
是不分大小写的。

/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0
到 9999。如果指定了 0,就不会有暂停,默认选项
会得到选择。

/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选
项指定的一组选择中; 同时,必须用 /T 指定 nnnn。

/M text 指定提示之前要显示的消息。如果没有指定,工具只
显示提示。

/? 显示帮助消息。

注意:
ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选
择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,
该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的
ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0
的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降
序排列。

示例:
CHOICE /?
CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"
CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"

==== willsort 编注 ===============================
我列出win98下choice的用法帮助, 已资区分

Waits for the user to choose one of a set of choices.
等待用户选择一组待选字符中的一个

CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]

/C[:]choices Specifies allowable keys. Default is YN
指定允许的按键(待选字符), 默认为YN
/N Do not display choices and ? at end of prompt string.
不显示提示字符串中的问号和待选字符
/S Treat choice keys as case sensitive.
处理待选字符时大小写敏感
/T[:]c,nn Default choice to c after nn seconds
在 nn 秒后默认选择 c
text Prompt string to display
要显示的提示字符串
ERRORLEVEL is set to offset of key user presses in choices.
ERRORLEVEL 被设置为用户键入的字符在待选字符中的偏移值
如果我运行命令:CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
屏幕上会显示:
确认请按 Y,否请按 N,或者取消请按 C。 [Y,N,C]?

例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列):
@echo off
choice /C dme /M "defrag,mem,end"
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errorlevel 1 goto defrag

:defrag
c:\dos\defrag
goto end

:mem
mem
goto end

:end
echo good bye

此批处理运行后,将显示"defrag,mem,end[D,M,E]?" ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束。

四、for 循环命令,只要条件符合,它将多次执行同一命令。

语法:
对一组文件中的每一个文件执行某个特定命令。

FOR %%variable IN (set) DO command [command-parameters]

%%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。

例如一个批处理文件中有一行:
for %%c in (*.bat *.txt) do type %%c

则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。

==== willsort 编注 =====================================================
需要指出的是, 当()中的字符串并非单个或多个文件名时, 它将单纯被当作字符串替换, 这个特性再加上()中可以嵌入多个字符串的特性, 很明显 for 可以被看作一种遍历型循环.
当然, 在 nt/2000/xp/2003 系列的命令行环境中, for 被赋予了更多的特性, 使之可以分析命令输出或者文件中的字符串, 也有很多开关被用于扩展了文件替换功能.
========================================================================

批处理示例

1. IF-EXIST

1) 首先用记事本在C:\建立一个test1.bat批处理文件,文件内容如下:
@echo off
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist

然后运行它:
C:\>TEST1.BAT

如果C:\存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。

2) 接着再建立一个test2.bat文件,内容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist

执行:
C:\>TEST2 AUTOEXEC.BAT
该命令运行结果同上。

说明:
(1) IF EXIST 是用来测试文件是否存在的,格式为
IF EXIST [路径+文件名] 命令
(2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。

==== willsort 编注 =====================================================
DOS没有 "允许传递9个批参数信息" 的限制, 参数的个数只会受到命令行长度和所调用命令处理能力的限制. 但是, 我们在批处理程序中, 在同一时刻只能同时引用10个参数, 因为 DOS只给出了 %0~%9这十个参数引用符.
========================================================================

3) 更进一步的,建立一个名为TEST3.BAT的文件,内容如下:
@echo off
IF "%1" == "A" ECHO XIAO
IF "%2" == "B" ECHO TIAN
IF "%3" == "C" ECHO XIN

如果运行:
C:\>TEST3 A B C
屏幕上会显示:
XIAO
TIAN
XIN

如果运行:
C:\>TEST3 A B
屏幕上会显示
XIAO
TIAN

在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。

2、IF-ERRORLEVEL

建立TEST4.BAT,内容如下:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 1 ECHO 文件拷贝失败
IF ERRORLEVEL 0 ECHO 成功拷贝文件

然后执行文件:
C:\>TEST4

如果文件拷贝成功,屏幕就会显示"成功拷贝文件",否则就会显示"文件拷贝失败"。

IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。
因此下面的批处理文件是错误的:

@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 0 ECHO 成功拷贝文件
IF ERRORLEVEL 1 ECHO 未找到拷贝文件
IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作
IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作
IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误

无论拷贝是否成功,后面的:

未找到拷贝文件
用户通过ctrl-c中止拷贝操作
预置错误阻止文件拷贝操作
拷贝过程中写盘错误

都将显示出来。

以下就是几个常用命令的返回值及其代表的意义:

backup
0 备份成功
1 未找到备份文件
2 文件共享冲突阻止备份完成
3 用户用ctrl-c中止备份
4 由于致命的错误使备份操作中止

diskcomp
0 盘比较相同
1 盘比较不同
2 用户通过ctrl-c中止比较操作
3 由于致命的错误使比较操作中止
4 预置错误中止比较

disk
0 盘拷贝操作成功
1 非致命盘读/写错
2 用户通过ctrl-c结束拷贝操作
3 因致命的处理错误使盘拷贝中止
4 预置错误阻止拷贝操作

format
0 格式化成功
3 用户

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:515
微博数据库设计 发布:2025-07-05 15:30:55 浏览:19
linux485 发布:2025-07-05 14:38:28 浏览:299
php用的软件 发布:2025-07-05 14:06:22 浏览:750
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:425
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:684
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:233
java的开发流程 发布:2025-07-05 12:45:11 浏览:678
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:277
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:828