当前位置:文档之家› 非常经典BAT知识教程

非常经典BAT知识教程

非常经典BAT知识教程
非常经典BAT知识教程

手把手教你写批处理(willsort题注版)

Climbing兄可谓用心良苦,受其感昭,略紧微薄之力;原文内容一字未易,仅于每段之下另加题注,其文大多非为纠错,多是年来体会,或偶得,或渐悟,未免偏颇;又加近来俗事渐多,闲情愈少,心浮气燥,一蹴而就。义理悖逆,敬请斧正;措辞不当,尚请莫怪。

另,建议Climbing兄取文不用拘泥于国内,此类技术文章,内外水平相差极大;与其修正国内只言片语,不如翻译国外优秀著述。

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

标题:手把手教你写批处理-批处理的介绍

作者:佚名

编者:Climbing

出处:中国DOS联盟之联合DOS论坛

题注:willsort

日期:2004-09-21

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

批处理的介绍

扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。

====willsort编注=====================================================

.bat是dos下的批处理文件

.cmd是nt内核命令行环境的另一种批处理文件

从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。所以从某个程度分析,batch,unix shell,awk, basic,perl等脚本语言都是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。====================================================================== ==

首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

====willsort题注====================================

批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的应用越来越“边缘化”。所以我们讨论的批处理应该限定在dos环境或者命令行环境中,否则很多观念和设定都需要做比较大的变动。

====================================================================== ==

其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。

====willsort编注=====================================================

批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。

====================================================================== ==

第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程序。

====willsort编注=====================================================

纯以dos系统而言,可执行程序大约可以细分为五类,依照执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内存),https://www.doczj.com/doc/39377600.html,中的内部命令(根据内存的环境随时进驻内存),以com为扩展名的可执行程序(由https://www.doczj.com/doc/39377600.html,直接载入内存),以exe位扩展名的可执行程序(由https://www.doczj.com/doc/39377600.html,重定位后载入内存),以bat位扩展名的批处理程序(由https://www.doczj.com/doc/39377600.html,解释分析,根据其内容按优先级顺序调用第2,3,4,5种可执行程序,分析一行,执行一行,文件本身不载入内存)

====================================================================== ==

第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行于Windows98下的autoexec.bat的示例:

@ECHO OFF

PATH

C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;C:\SYSTOOLS;C:\WINT OOLS;C:\BATCH

LH SMARTDRV.EXE/X

LH https://www.doczj.com/doc/39377600.html,/INSERT

LH CTMOUSE.EXE

SET TEMP=D:\TEMP

SET TMP=D:\TEMP

====willsort编注=====================================================

AUTOEXEC.BAT为DOS系统的自动运行批处理文件,由https://www.doczj.com/doc/39377600.html,启动时解释执行;

而在Win9x环境中,不仅增加支持了DOSSTART.BAT,WINSTART.BAT等许多其它自动运行的批处理文件,对AUTOEXEC.BAT也增加了.DOS.W40.BAK.OLD.PWS等许多变体以适应复杂的环境和多变的需求。

====================================================================== ==

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

标题:手把手教你写批处理-常用命令与特殊命令

作者:佚名

编者:Climbing

出处:中国DOS联盟之联合DOS论坛

题注:willsort

日期:2004年11月10日

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

[转帖并完善]手把手教你写批处理

原文作者写东西很没有专业精神,写的文章简直是错误百出,而且啰里八索,如果不加以修改和完善,简直是误人子弟,因此,我在原文的基础上进行了修改,修正了大部分错误(当然,不可避免可能会有新的错误,希望高手发现后能够及时指出来)。

URL:https://www.doczj.com/doc/39377600.html,/News/technic/200408/2004081609515074304.html

摘自:天下网吧联盟作者:佚名

修改及完善:Climbing(xclimbing@https://www.doczj.com/doc/39377600.html,)

最后修改日期:2004年8月19日

====willsort编注=====================================================以下关于命令的分类,有很多值得推敲的地方.常用命令中的@本不是命令,,而dir copy等也很常用的命令却没有列入,而特殊命令中所有命令对我来说都是常用命令.建议将批处理所引用的命令分为内部命令,外部命令,第三方程序三类.而内部命令和外部命令中中别有一类是专用于或常用于批处理中的命令可称之为"批处理命令".

以下摘录MS-DOS6.22帮助文档中关于"批处理命令"的文字,当然,其中有些概念和定义已经有些落后了.

批处理命令

批处理文件或批处理程序是一个包含若干MS-DOS命令的正文文件,扩展名为.BAT。当在命令提示符下敲入批处理程序的名称时,MS-DOS成组执行此批处理程序中的命令。

任何在命令提示符下可使用的命令都可用在批处理程序中。此外,下面MS-DOS命令

是专门在批处理程序中使用的。

====================================================================== ==

常用命令

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

====willsort编注=====================================================首先,@不是一个命令,而是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表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。

====willsort编注=====================================================此处的描述较为混乱,不如直接引用个命令的命令行帮助更为条理

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

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文件的内容。

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

初始状态,cmd为命令名,可以用%0引用

cmd arg1arg2arg3arg4arg5arg6arg7arg8arg9arg10

^^^^^^^^^^

||||||||||

%0%1%2%3%4%5%6%7%8%9

经过1次shift后,cmd将无法被引用

cmd arg1arg2arg3arg4arg5arg6arg7arg8arg9arg10

^^^^^^^^^^

||||||||||

%0%1%2%3%4%5%6%7%8%9

经过2次shift后,arg1也被废弃,%9指向为空,没有引用意义

cmd arg1arg2arg3arg4arg5arg6arg7arg8arg9arg10

^^^^^^^^^

|||||||||

%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:

====willsort编注=====================================================

if的命令行帮助中关于此点的描述为:

IF[NOT]string1==string2command

在此有以下几点需要注意:

1.包含字符串的双引号不是语法所必须的,而只是习惯上使用的一种"防空"字符

2.string1未必是参数,它也可以是环境变量,循环变量以及其他字符串常量或变量

https://www.doczj.com/doc/39377600.html,mand不是语法所必须的,string2后跟一个空格就可以构成一个有效的命令行====================================================================== ==

2、if[not]exist[路径\]文件名待执行的命令

如果有指定的文件,则条件成立,运行命令,否则运行下一句。

如:if exist c:\config.sys type c:\config.sys

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

******willsort编注********

也可以使用以下的用法:

if existcommand

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 errorlevel2goto x2

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

if errorlevel1set el=1

if errorlevel2set el=2

if errorlevel3set el=3

if errorlevel4set el=4

if errorlevel5set el=5

...

当然,也可以使用以下循环来替代,原理是一致的:

for%%e in(12345678...)do if errorlevel%%e set el=%%e

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

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

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

====================================================================== ==

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

如:

goto end

:end

echo this is the end

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

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

goto

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的命令语法(该语法为Windows2003中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/T10/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 errorlevel3goto end

if errorlevel2goto mem

if errotlevel1goto defrag

====willsort编注===================================================== errotlevel->errorlevel

====================================================================== ==

: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被赋予了更多的特性,使之可以分析命令输出或者文件中的字符串,也有很多开关被用于扩展了文件替换功能.

====================================================================== ==

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

标题:手把手教你写批处理-批处理示例

作者:佚名

编者:Climbing

出处:中国DOS联盟之联合DOS论坛

题注:willsort

日期:2004年11月10日

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

[转帖并完善]手把手教你写批处理

原文作者写东西很没有专业精神,写的文章简直是错误百出,而且啰里八索,如果不加以修改和完善,简直是误人子弟,因此,我在原文的基础上进行了修改,修正了大部分错误(当然,不可避免可能会有新的错误,希望高手发现后能够及时指出来)。

URL:https://www.doczj.com/doc/39377600.html,/News/technic/200408/2004081609515074304.html

摘自:天下网吧联盟作者:佚名

修改及完善:Climbing(xclimbing@https://www.doczj.com/doc/39377600.html,)

最后修改日期:2004年8月19日

批处理示例

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\%1TYPE\%1

IF NOT EXIST\%1ECHO\%1does not exist

执行:

C:\>TEST2AUTOEXEC.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:\>TEST3A B C

屏幕上会显示:

XIAO

TIAN

XIN

如果运行:

C:\>TEST3A B

屏幕上会显示

XIAO

TIAN

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

2、IF-ERRORLEVEL

建立TEST4.BAT,内容如下:

@ECHO OFF

XCOPY C:\AUTOEXEC.BAT D:\

IF ERRORLEVEL1ECHO文件拷贝失败

IF ERRORLEVEL0ECHO成功拷贝文件

然后执行文件:

C:\>TEST4

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

IF ERRORLEVEL是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。

因此下面的批处理文件是错误的:

@ECHO OFF

XCOPY C:\AUTOEXEC.BAT D:\

IF ERRORLEVEL0ECHO成功拷贝文件

IF ERRORLEVEL1ECHO未找到拷贝文件

IF ERRORLEVEL2ECHO用户通过ctrl-c中止拷贝操作

IF ERRORLEVEL3ECHO预置错误阻止文件拷贝操作

IF ERRORLEVEL4ECHO拷贝过程中写盘错误

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

未找到拷贝文件

用户通过ctrl-c中止拷贝操作

预置错误阻止文件拷贝操作

拷贝过程中写盘错误

都将显示出来。

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

backup

0备份成功

1未找到备份文件

2文件共享冲突阻止备份完成

3用户用ctrl-c中止备份

4由于致命的错误使备份操作中止

diskcomp

0盘比较相同

1盘比较不同

2用户通过ctrl-c中止比较操作

3由于致命的错误使比较操作中止

4预置错误中止比较

diskcopy

0盘拷贝操作成功

1非致命盘读/写错

2用户通过ctrl-c结束拷贝操作

3因致命的处理错误使盘拷贝中止

4预置错误阻止拷贝操作

format

0格式化成功

3用户通过ctrl-c中止格式化处理

4因致命的处理错误使格式化中止

5在提示“proceed with format(y/n)?”下用户键入n结束

xcopy

0成功拷贝文件

1未找到拷贝文件

2用户通过ctrl-c中止拷贝操作

4预置错误阻止文件拷贝操作

5拷贝过程中写盘错误

====willsort编注===================================================== chkdsk

0未找到错误

255找到一个或多个错误

choice

0用户按下ctrl+c/break

1用户按下第一个键

255检测到命令行中的错误条件

其它用户按下的有效字符在列表中的位置

defrag

0碎片压缩成功

1出现内部错误

2磁盘上没有空簇。要运行DEFRAG,至少要有一个空簇3用户用Ctrl+C退出了DEFRAG

4出现一般性错误

5DEFRAG在读簇时遇到错误

6DEFRAG在写簇时遇到错误

7分配空间有错

8内存错

9没有足够空间来压缩磁盘碎片

deltree

0成功地删除一个目录

diskcomp

0两盘相同

1发现不同

2按CTRL+C终止了比较

3出现严重错误

4出现初始化错误

find

0查找成功且至少找到了一个匹配的字符串

1查找成功但没找到匹配的字符串

2查找中出现了错误

keyb

0键盘定义文件装入成功

1使用了非法的键盘代码,字符集或语法

2键盘定义文件坏或未找到

4键盘、监视器通讯时出错

5要求的字符集未准备好

move

0成功地移动了指定的文件

1发生了错误

msav/N

86检查到了病毒

replace

0REPLACE成功地替换或加入了文件

1MS-DOS版本和REPLACE不兼容

2REPLACE找不到源文件

3REPLACE找不到源路径或目标路径

5不能存取要替换的文件

8内存不够无法执行REPLACE

11命令行句法错误

restore

0RESTORE成功地恢复了文件

1RESTORE找不到要恢复的文件

3用户按CTRL+C终止恢复过程

4RESTORE因错误而终止

scandisk

0ScanDisk在它检查的驱动器上未检测到任何错误

1由于命令行的语法不对,不能运行ScanDisk

2由于内存用尽或发生内部错误,ScanDisk意外终止

3用户让ScanDisk中途退出

4进行盘面扫描时,用户决定提前退出

254ScanDisk找到磁盘故障并已全部校正

255ScanDisk找到磁盘故障,但未能全部校正

setver

0SETVER成功地完成了任务

1用户指定了一个无效的命令开关

2用户指定了一个非法的文件名

3没有足够的系统内存来运行命令

4用户指定了一个非法的版本号格式

5SETVER在版本表中未找到指定的项

6SETVER未找到SETVER.EXE文件

7用户指定了一个非法的驱动器

8用户指定了太多的命令行参数

9SETVER检测到丢失了命令行参数

10在读SETVER.EXE文件时,SETVER检测到发生错误

11SETVER.EXE文件损坏

12指定的SETVER.EXE文件不支持版本表

13版本表中没有足够的空间存放新的项

14在写SETVER.EXE文件时SETVER检测到发生错误

====================================================================== ==

3、IF STRING1==STRING2

建立TEST5.BAT,文件内容如下:

@echo off

IF"%1"=="A"FORMAT A:

执行:

C:\>TEST5A

屏幕上就出现是否将A:盘格式化的内容。

注意:为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。

如:if[%1]==[A]或者if%1*==A*

5、GOTO

建立TEST6.BAT,文件内容如下:

@ECHO OFF

IF EXIST C:\AUTOEXEC.BAT GOTO_COPY

GOTO_DONE

:_COPY

COPY C:\AUTOEXEC.BAT D:\

:_DONE

注意:

(1)标号前是ASCII字符的冒号":",冒号与标号之间不能有空格。

(2)标号的命名规则与文件名的命名规则相同。

(3)DOS支持最长八位字符的标号,当无法区别两个标号时,将跳转至最近的一个标号。====willsort编注=====================================================

1)标号也称作标签(label)

2)标签不能以大多数的非字母数字字符开始,而文件名中则可以使用很多

3)当无法区别两个标签时,将跳转至位置最靠前的标签

====================================================================== ==

6、FOR

建立C:\TEST7.BAT,文件内容如下:

@ECHO OFF

FOR%%C IN(*.BAT*.TXT*.SYS)DO TYPE%%C

运行:

C:\>TEST7

执行以后,屏幕上会将C:盘根目录下所有以BAT、TXT、SYS为扩展名的文件内容显示出来(不包括隐藏文件)。

批处理的一些简单应用

内容:批处理应用的几个例子 作者:e哥(eaggle_wei) 时间:2011.3.6-2011.6.22 1.刷BIOS 我们在做测试工作时,经常要刷BIOS,而且BIOS时常更新,为了方便我们通常会把同一个机种的BIOS放在U盘中那个机种的文件名下,例如我做的P4LJ0的案子,里面BIOS 的版本从P4LJ0001一直更新到P4LJ0017,也就是文件名P4LJ0里面有17个关于BIOS的子文件,那么我们在刷BIOS时(比如我们刷P4LJ0001的bios)在dos下就会输入:C:\>cd P4LJ0 C:\P4LJ0>cd P4LJ0001 C:\ P4LJ0\P4LJ0001>bios.bat 这样一步一步来很麻烦,尤其是要刷新几十台机器的时候,所以我们就想到写个批处理放到根目录下,这样就不会每次按键按得手疼了。 例: cd P4LJ0 cd P4LJ0001 bios.bat 我们把以上内容放到一个简单字母或者数字命名的批处理中,保存下来存到U盘根目录下,例如保存到1.bat中。这样刷新时直接在提示符C:\>下输入1,然后回车就OK了,是不是很省事?当然有没有全自动化的,就是只需要插U盘,然后设置从U盘启动就OK了的?当然有了,比如我们把这个批处理命名为autoexec.bat就可以实现了,因为批处理默认这个批处理文件自动执行,但本人不建议这样做,即使你这样做了在工作结束后一定要记得把它删掉,否则可能图一时方便为以后制造不必要的麻烦。比如你把U盘插到另一个不共用的BIOS的机种上启动,这时刷完BIOS你就悲剧了,开不了机。 当然像我这种菜鸟,在刚开始看批处理的时候,连如何生成.bat文件都不懂,还以为是个高科技的东西,每次都是把一个现成的批处理文档换个位置重命名后,把要修改的内容从UltraEdit编辑器里面拷贝进去。后来找到一种新方法,先保存到一个txt文档中,然后重命名时强制修改后缀,如把1.txt重命名为1.bat后回车,当然电脑会提示你“如果更改扩展名,可能会导致文件不可用,确实要更改吗?不理会它,点是就可以了。不过使用这种方法时要注意不能把文件设为隐藏文件名,否则你找不到扩展名。至于怎么修改,哥好人做到底,知道的就跳过。打开我的电脑/计算机→在最上面的标题栏点“工具”→文件夹选项→查看→勾选“隐藏已知文件类型的扩展名”。 2.打开工作时要用到一天的东西 批处理在windows操作系统出现以后,很少有人问津了,像我们干BIOS的能够有幸知道一些,已经成为批处理的有生力量了,但一个编程高手如果不懂批处理,顶多只能算有点小成绩,像我等菜鸟懂一点批处理,毕竟还是有好处的,凡是病毒大多都包含有批处理,因为它太强大了,只要你轻轻双击一下鼠标,其他的工作就不用你做了,所以其实有时候不是病毒厉害,是你不懂病毒而打开了它,当然现在很多病毒是繁殖能力极强的,只要你插了U盘,就会被感染,这样子你就会防不胜防,所以瑞星,金山毒霸等这些杀毒软件还是需要的。不过要知道,杀毒软件永远滞后于病毒,所以你懂点批处理的小常识,就可以尽量避免打开某些恶意软件,增强你的防范能力。陈冠希的艳照门据说就是不懂照相机有备份恢复删除的知识而传出来的,所以建议大家没事多学点东西。 言归正传,比如我们要打开工作时常用的OUTLOOK,lingoes,Skype等东西,每次双击再打开,这样其实也不麻烦,但有没有办法一次性把他们都打开呢?答案是肯定的,那

各大知名公司校园招聘经典常见面试题集锦

各大知名公司校园招聘经典常见面试题集锦 一.自我认识类 1.你的缺点是什么?如果我们淘汰你,你认为原因是什么? (华为公司2011校招面试题,分享人:彭红) 2.你最骄傲的经历是什么?描述一个你与人合作共同完成目标的经历。 (2011宝洁校招面试题,分享人:彭红) 3.请详细描述一下你理想中的未来工作环境及每日工作内容。举例说明一件在 校期间你认为最有成就感和最失败的事。 (三星集团2010校招面试题,分享人:李玉娇) 4.你能不能喝酒? (中国银行总行2009招聘面试题,分享人:何轶男) 5.依靠你的专业素养能给团队带来哪些帮助?用三个词形容你的大学生活。(中 国建设银行苏州分行2010校招面试题,分享人:张栩萌) 6.你的梦想是什么,为此做了哪些努力?(优衣库2010校招面试题,分享人: 张栩萌) 7.你生活中有没有遇到过挫折?是如何面对的? (腾讯2009校招面试题,分享人:刘妍) 8.你心目中的另一半是什么样子? (东莞银行2012面试题,分享人:刁媛、万宝军) 9.请用一句话总结自己二十年的人生感悟。 (飞亚达2012面试题,分享人:吴念菲)

10.你遇到的最大挫折和获得的最大成就是什么? (上海交通大学2012研究生复试题,分享人:游昕琦、李如诗) 11.你最大的缺点是什么? (汇丰银行2012管培生面试,分享人:李立彬、杨玮希) 12.你平时有什么爱好?你一开始是选择银行作为实习单位,后来为什么要来中 国移动呢? (深圳移动2012面试题,分享人:陈奥、江程) 13.举例说明你怎样获得一种技能,并将其转化为实践。 (宝洁2012面试题,分享人:陈思蕾、杨媛颖) 14.你对未来的职业规划是怎么样的? (毕马威2012面试题,分享人:唐寅、雷静晗) 15.说说你所知道的RBS。讲一个你所遇到的困难,如何克服?说说你最大的缺 点。 (苏格兰皇家银行2012全球实习生面试,分享人:杨玮希) 16.你平时爱看什么书报杂志?你除了专业课,最喜欢的课是什么? (淡马锡投资2012中国管培生面试题,分享人:杨玮希) 17.你希望与什么样的上级共事? (中国农业银行宜昌分行2012面试题,分享人:向思凤、赵长龙) 18.你认为将来会是什么原因让你离职? (建行四川省分行2012面试题,分享人:李冀明、李阳) 19.请简要谈谈你的兴趣爱好。 (建行江苏分行2012面试题,分享人:王秋蕾、张静秋)

java经典面试题汇总

Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√ × friendly √√ × × private √ × × × 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和 Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JA V A的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的 7、String s = new String("xyz");创建了几个String Object 答:两个,一个字符对象,一个字符对象引用对象 8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少 答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2后求其floor 9、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错 答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译) 10、Java有没有goto 答:java中的保留字,现在没有在java中使用 11、数组有没有length()这个方法? String有没有length()这个方法 答:数组没有length()这个方法,有length的属性。String有有length()这个方法 12、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型

十分经典的excel批处理教程

十分经典的批处理教程 这是一篇技术教程,真心诚意会用很简单的文字表达清楚自己的意思,只要你识字就能看懂,就能学到知识。写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。. 先概述一下批处理是个什么东东。批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了;但我想总结出一个"比较合适的",而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东东,你用这个东东可以干什么事情。或许你会因为这篇文章而"无条件爱上批处理",那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的! 按照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。 OK,never claver and get to business(闲话少说言归正传)。批处理,也称为批处理脚本,英文译为BA TCH,批处理文件后缀BA T就取的前三个字母。它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。再说句"闲话":要学好批处理,DOS基础一定要牢!当然脑子灵活也是很重要的一方面。 例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似): ping https://www.doczj.com/doc/39377600.html, > a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt exit 是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离"从服务器中转"那一痛苦的过程。这里>的意思,是把前面命令得到的东西放到后面所给的地方,>>的作用,和>的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt文件越来越大(想到如何搞破坏了??)。By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。 例二、再给出一个已经过时的例子(a.bat):

摄影入门所有基础知识

摄影入门的所有基础知识 第一课: 数码相机光圈、快门解释及应用 光圈: 光圈的大小是相机镜头中控制光线的参数。说得直白一些,光圈的大小将决定光线穿过镜头的强弱。因此大家可以很容易地想像到,光圈越大其透过镜头投影到数码相机感光器上的光线也就越强,反之则越弱。那么它的大小也将直接影响到我们拍摄出的数码照片的成像质量。比如在快门时间相同的情况下,光圈越大则相片越亮,假如光圈过大的话,则会出现曝光过度的情况。无论对于传统相机还是数码相机,光圈都使用字母“f”来表示,而光圈中心孔径的大小则用相应的数值来表示,即“f+数值”。在使用中,值得大家注意的是,光圈的数值越小,代表光圈的孔径越大,进光量越多,反之则进光量越少。所以,通常在拍摄时所说的“加大光圈”是指把光圈的数值调小,将光孔加大的意思。比如从f 5.6调大一级到f4、或更大一级的f2.8等。 光圈从关闭到打开的差异,以及使用不同光圈数值所对光圈大小产生的影响。从图左上至右下分别是光圈处于关闭、f11、f8及f4不同状态下的光圈大小。由此,我们也可以理解光圈越大,投影到数码相机感光器上的光线也就越强的道理。 快门: 快门的速度也是拍摄照片时控制曝光时间长短的参数。为了让大家更容易理解,我们也可以把快门说成是让相机保持当前设定光圈大小的控制时间。对于快门速度的表示方法,也是使用相应的数字来进行设定,比如1/4秒、1/60秒等。它们分别表示让当前设定的光圈孔径大小保持1/30秒、1/60秒的时间。因此,大家也从中不难看出,使用不同的快门参数来保持单位光圈孔径的时间长短,也同样可以控制拍摄时的进光量,即曝光度。而上面提到的1/30秒便是1/60秒的两倍时间,而此时它们通过单位光圈孔径的光量也是成两倍的关系,那么反过来1/30秒则是1/15秒的二分之一时间,通过单位光圈孔径的光量则将会缩减一半。 在实际拍摄中,我们可以通过对快门速度的调节来实现不同的效果,比如看起来流动的“车河”或凝固的水滴等,它们便分别是使用慢速快门和高(快)速快门来实现的。当然,在使用时还要注意快门与光圈的合理配合,这点我们以后将要向大家重点介绍的。 下面讲一下在实际应用中应该如何协调它们之间的关系来更好地达到照片

经典--500强企业面试题-附答案

【经典·面试】世界500强经典面试题,附答案 1、有十筐苹果,每筐里有十个,共100个,每筐里苹果的重量都是一样,其中有九筐每个苹果的重量都是1斤,另一筐中每个苹果的重量都是0.9斤,但是外表完全一样,用眼看或用手摸无法分辨。现在要你用一台普通的大秤一次把这筐重量轻的找出来。 答案:从第一筐中拿出一个,第二筐中拿出两个,第十筐拿出十个,一起放在称上称。如果每个苹果一斤重,就应该是55斤。假设称出是54.9斤,则说明,从第一筐中拿出那个苹果是九两的,也就是说第一筐的苹果是九两重的。如果称出是54.8斤,也就是说差2两,而又只有一筐苹果中的每个都是九两重的,所以一定是第二筐中拿出两个是9两重,也就是说第二筐的苹果是九两重的。按这样推理下去,应该明白吧!! 2、我有一堆绳子,这些绳子之间粗细长短各不相同,每一条绳子本身各处的粗细长短也各不相同。但是每条绳子的燃烧时间都是60秒,试问我要测量15秒的时间,我该如何做? 1. 同时点燃任意两根绳子,第一根绳子点两头,第二根绳子点一头; 2. 等第一根绳子烧完后,点燃第二根绳子的另一头,让两头同时燃烧,并开始计时; 3. 在第二根绳子烧尽时停止计时,即可得15秒的时间。 因为题目中给出一个条件:一堆绳子,长短粗细各不相同,也不均匀。 也就是说每根绳子从头到尾都是不均匀的,并非只是绳子与绳子不同。 那么~~虽然单根绳子总的燃烧时间为60秒,但若取半根则未必是30秒, 四分之一根未必是15秒啊~~~~~~~ 若假定了一个默认的条件:就是单根绳子是均匀的。因此,必然会导致错误的结果。 3、有一堆垃圾,规定要由王三户人家清理。户因外出没能参加,留下9元钱做代劳费。王户上午起早干了5小时,户下午接着干了4小时刚好干完。问王户和户应怎样分配这9元钱? 答案:不能简单地认为王户应得5元,户应得4元。不加分析而想当然办事往往搞错。应该知道,王两户所做的工作中,除帮户外,还有他们自己的任务。很明显,每户的工作量为3小时。王帮干了2小时,帮干了1小时,王帮的工作量是帮的2倍,得到的报酬当然也应该是的2倍。因此,王应得6元,应得3元。 4、一天有个年轻人来到王老板的店里买了一件礼物这件礼物成本是18元,标价是21元。结果是这个年轻人掏出100元要买这件礼物。王老板当时没有零钱,用那100元向街坊换了100元的零钱,找给年轻人79元。但是街坊後来发现那100元是假钞,王老板无奈还了街坊100元。现在问题是:王老板在这次交易中到底损失了多少钱?

JAVA框架面试题汇总

1.SpringMVC Framework的理解: 1、它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是java组件。并且和Spring提供的其他基础结构紧密集成 2、不依赖于Servlet API(目标虽是如此,但是在实现的时候确实是依赖于Servlet的) 3、可以任意使用各种视图技术,而不仅仅局限于JSP 4、支持各种请求资源的映射策略 5、它应是易于扩展的 2.简单的谈一下SpringMVC的工作流程? 流程? 1、用户发送请求至前端控制器DispatcherServlet? 2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。? 3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。? 4、DispatcherServlet调用HandlerAdapter处理器适配器? 5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。? 6、Controller执行完成返回ModelAndView? 7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet? 8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器? 9、ViewReslover解析后返回具体View? 10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。? 11、DispatcherServlet响应用户 3.如何解决POST请求中文乱码问题,GET的又如何处理呢? 在web.xml中加入: . .CharacterEncodingFilter . .???? .????????encoding .?????? utf-8

各大知名公司校园招聘经典常见面试题集锦教学教材

各大知名公司校园招聘经典常见面试题集锦一.自我认识类 1. 你的缺点是什么?如果我们淘汰你,你认为原因是什么? (华为公司2011校招面试题,分享人:彭红) 2. 你最骄傲的经历是什么?描述一个你与人合作共同完成目标的经历。 (2011宝洁校招面试题,分享人:彭红) 3. 请详细描述一下你理想中的未来工作环境及每日工作内容。举例说明一件在 校期间你认为最有成就感和最失败的事。 (三星集团2010校招面试题,分享人:李玉娇) 4. 你能不能喝酒? (中国银行总行2009招聘面试题,分享人:何轶男)5. 依靠你的专业素养能给团队带来哪些帮助?用三个词形容你的大学生活。(中

国建设银行苏州分行2010校招面试题,分享人:张栩萌) 6. 你的梦想是什么,为此做了哪些努力?(优衣库2010校招面试题,分享人: 张栩萌) 7. 你生活中有没有遇到过挫折?是如何面对的? (腾讯2009校招面试题,分享人:刘妍) 8. 你心目中的另一半是什么样子? (东莞银行2012面试题,分享人:刁媛、万宝军)9. 请用一句话总结自己二十年的人生感悟。 (飞亚达2012面试题,分享人:吴念菲) 10.你遇到的最大挫折和获得的最大成就是什么? (上海交通大学2012研究生复试题,分享人:游昕琦、李如诗) 11.你最大的缺点是什么? (汇丰银行2012管培生面试,分享人:李立彬、杨玮希)

12.你平时有什么爱好?你一开始是选择银行作为实习单位,后来为什么要来中 国移动呢? (深圳移动2012面试题,分享人:陈奥、江程) 13.举例说明你怎样获得一种技能,并将其转化为实践。 (宝洁2012面试题,分享人:陈思蕾、杨媛颖)14.你对未来的职业规划是怎么样的? (毕马威2012面试题,分享人:唐寅、雷静晗)15.说说你所知道的RBS。讲一个你所遇到的困难,如何克服?说说你最大的缺 点。 (苏格兰皇家银行2012全球实习生面试,分享人:杨玮希) 16.你平时爱看什么书报杂志?你除了专业课,最喜欢的课是什么? (淡马锡投资2012中国管培生面试题,分享人:杨玮希)

2019最新Java面试题,常见面试题及答案汇总

ava最新常见面试题+ 答案汇总 1、面试题模块汇总 面试题包括以下十九个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示: 可能对于初学者不需要后面的框架和JVM 模块的知识,读者朋友们可根据自己的情况,选择对应的模块进行阅读。 适宜阅读人群 需要面试的初/中/高级java 程序员 想要查漏补缺的人 想要不断完善和扩充自己java 技术栈的人 java 面试官 具体面试题 下面一起来看208 道面试题,具体的内容。 一、Java 基础 1.JDK 和JRE 有什么区别? 2.== 和equals 的区别是什么? 3.两个对象的hashCode()相同,则equals()也一定为true,对吗? 4.final 在java 中有什么作用? 5.java 中的Math.round(-1.5) 等于多少? 6.String 属于基础的数据类型吗? 7.java 中操作字符串都有哪些类?它们之间有什么区别? 8.String str="i"与String str=new String(“i”)一样吗? 9.如何将字符串反转? 10.String 类的常用方法都有那些? 11.抽象类必须要有抽象方法吗? 12.普通类和抽象类有哪些区别? 13.抽象类能使用final 修饰吗?

14.接口和抽象类有什么区别? 15.java 中IO 流分为几种? 16.BIO、NIO、AIO 有什么区别? 17.Files的常用方法都有哪些? 二、容器 18.java 容器都有哪些? 19.Collection 和Collections 有什么区别? 20.List、Set、Map 之间的区别是什么? 21.HashMap 和Hashtable 有什么区别? 22.如何决定使用HashMap 还是TreeMap? 23.说一下HashMap 的实现原理? 24.说一下HashSet 的实现原理? 25.ArrayList 和LinkedList 的区别是什么? 26.如何实现数组和List 之间的转换? 27.ArrayList 和Vector 的区别是什么? 28.Array 和ArrayList 有何区别? 29.在Queue 中poll()和remove()有什么区别? 30.哪些集合类是线程安全的? 31.迭代器Iterator 是什么? 32.Iterator 怎么使用?有什么特点? 33.Iterator 和ListIterator 有什么区别? 34.怎么确保一个集合不能被修改?

数码摄影入门基础知识

数码摄影入门基础知识 1、在相机的参数表中,有类似F2.8-4/? 甚至F3.5 - F5 / F7.6 - F11表示什么意思? 答:相机镜头的光圈F值,并不仅仅是一个孔径的问题,实际表示的是通光量,还和镜头的焦距等因素有关,是个相对值。对于一般的变焦镜头,即使光圈的物理孔径不变,焦距变长时通光量会变小,光圈F值也变小。F3.5 - F5 / F7.6 - F11表示:最大光圈在广角端,焦距最短时为F2.8,在长焦端,焦距最长时为F5;最小光圈在广角端,焦距最短时为F7.6,在长焦端,焦距最长时为F11。 当然,高级的专业镜头有的是恒定光圈,即F值不随焦距变化,其实那是在变焦时,光圈的物理口径相应在变。恒定光圈的镜头要比同质量的一般镜头贵很多。 2、为什么数码相机的最小光圈都不够小,比如C-700是F8、N995是F10,而传统相机中动辄F11、F16甚至F22为什么? 答:我们平时所说的光圈值F2.8、F8、F16等是光圈“系数”,是相对光圈,并非光圈的物理孔径,与光圈的物理孔径及镜头到感光器件(胶片或CCD或CMOS)的距离有关。 当光圈物理孔径不变时,镜头中心与感光器件距离愈远,F数愈小,反之,镜头中心与感光器件距离愈近,通过光孔到达感光器件的光密度愈高,F数就愈大。 多数非专业数码相机镜头的焦距短、物理口径很小,F8时光圈

的物理孔径已经很小了,继续缩小就会发生衍射之类的光学现象,影响成像。所以一般非专业数码相机的最小光圈都在F8至F11,而专业型数码相机感光器件面积大,镜头距感光器件距离远,光圈值可以很小。 3、什么是包围式曝光?如何使用? 答:包围式曝光(Bracketing)是相机的一种高级功能。尽管测光技术日臻完善,由于光线条件、被摄主体千变万化,仍可能会有测光偏差。为了防止因测光失误而错失重要拍摄主题,在许多高档传统相机中就已经引入了包围式曝光功能,就是当你按下快门时,相机不是拍摄一张,而是以不同的曝光组合连续拍摄多张,从而保证总能有一张符合摄影者的曝光意图。 在数码相机中,不但引入了针对曝光量的包围式曝光,有的相机甚至可以针对白平衡、对焦等进行包围式拍摄。 4、自动曝光模式下怎样调整曝光量? 答:虽然相机自动测光的技术日益完善,中央重点测光、分区测光等智能化程度越来越高,但是机器毕竟是机器,仍然有测不准的时候,如果被摄物亮度分布不均匀,如在明亮的背景前面拍人物的逆光照,很容易受背景亮度的影响而使人物曝光不足,这时可使用AE锁或曝光补偿来解决这类问题,有曝光补偿装置的相机可以进行+2、+1、

百一测评——Java经典面试题 带答案

职业技能题库&在线云笔试平台https://www.doczj.com/doc/39377600.html, 试卷名称:Java经典面试题带答案 试卷描述:java笔试题目、招聘笔试、微信考试、在线考试 试卷链接:https://www.doczj.com/doc/39377600.html,/store/open/paperInfo/41651 试卷限时:50分 一.单项选择题 每题分值:2.5分 是否题目乱序:是 是否选项乱序:是 是否可回溯:是 难度:中 1.[单选]Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.[单选]下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确

职业技能题库&在线云笔试平台https://www.doczj.com/doc/39377600.html, 答案:B 3.[单选]下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名 C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.[单选]提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.doczj.com/doc/39377600.html,ng D.java.swing 答案:A 5.[单选]下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.[单选]执行如下程序代码 a=0;c=0;

职业技能题库&在线云笔试平台https://www.doczj.com/doc/39377600.html, do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.[单选]下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.[单选]下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象

实用批处理(bat)教程

目录 第一章批处理基础 第一节常用批处理内部命令简介 1、REM 和:: 2、ECHO 和@ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和: 9、FIND 10、START 11、assoc 和ftype 12、pushd 和popd 13、CALL 14、shift 15、IF 16、setlocal 与变量延迟(ENABLEDELAYEDEXPANSION / DISABLEDELAYEDEXPANSION 启动或停用延缓环境变量扩展名。) 17、ATTRIB显示或更改文件属性 第二节常用特殊符号 1、@命令行回显屏蔽符 2、%批处理变量引导符 3、> 重定向符 4、>>重定向符 5、<、>、<& 重定向符 6、|命令管道符 7、^转义字符 8、组合命令 9、& 组合命令 10、||组合命令 11、\"\"字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号 第二章FOR命令详解 一、基本格式 二、参数/d仅为目录 三、参数/R递归(文件名) 四、参数/L迭代数值范围 五、参数/F迭代及文件解析 第三章FOR命令中的变量

一、~I- 删除任何引号(\"),扩展%I 二、%~fI- 将%I 扩展到一个完全合格的路径名 三、%~dI- 仅将%I 扩展到一个驱动器号 四、%~pI- 仅将%I 扩展到一个路径 五、%~nI- 仅将%I 扩展到一个文件名 六、%~xI- 仅将%I 扩展到一个文件扩展名 七、%~sI- 扩展的路径只含有短名 八、%~aI- 将%I 扩展到文件的文件属性 九、%~tI- 将%I 扩展到文件的日期/时间 十、%~zI- 将%I 扩展到文件的大小 十一、%~$PATH:I 第四章批处理中的变量 一、系统变量 二、自定义变量 第五章set命令详解 一、用set命令设置自定义变量 二、用set命令进行简单计算 三、用set命令进行字符串处理 1、字符串替换 2、字符串截取 第六章if命令讲解 第一种用法:IF [NOT] ERRORLEVEL number command 第二种用法:IF [NOT] string1==string2 command 第三种用法:IF [NOT] EXIST filename command 第四种用法:IF增强的用法 第七章DOS编程高级技巧 一、界面设计 二、if…else…条件语句 三、循环语句 四、子程序 五、用ftp命令实现自动下载 六、用7-ZIP实现命令行压缩和解压功能 七、调用VBScript程序 八、将批处理转化为可执行文件 九、时间延迟 1、利用ping命令延时 2、利用for命令延时 3、利用vbs延迟函数,精确度毫秒,误差1000毫秒内 4、仅用批处理命令实现任意时间延迟,精确度10毫秒,误差50毫秒内 十、模拟进度条 十一、特殊字符的输入及应用 十二、随机数(%random%)的应用技巧 十三、变量嵌套与命令嵌套 1、更正了所有的错别字,适当排版,增加条理性。

各大公司面试题目

微软十五道面试题 1、有一个整数数组,请求出两两之差绝对值最小的值, 记住,只要得出最小值即可,不需要求出是哪两个数。 2、写一个函数,检查字符是否是整数,如果是,返回其整数值。 (或者:怎样只用4行代码编写出一个从字符串到长整形的函数?) 3、给出一个函数来输出一个字符串的所有排列。 4、请编写实现malloc()内存分配函数功能一样的代码。 给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。 5、怎样编写一个程序,把一个有序整数数组放到二叉树中? 6、怎样从顶部开始逐层打印二叉树结点数据?请编程。 7、怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? 8、请编写能直接实现int atoi(const char * pstr)函数功能的代码。 9、编程实现两个正整数的除法 编程实现两个正整数的除法,当然不能用除法操作符。 // return x/y. int div(const int x, const int y) { .... } 10、在排序数组中,找出给定数字的出现次数 比如[1, 2, 2, 2, 3] 中2的出现次数是3次。 11、平面上N个点,每两个点都确定一条直线, 求出斜率最大的那条直线所通过的两个点(斜率不存在的情况不考虑)。时间效率越高越好。 12、一个整数数列,元素取值可能是0~65535中的任意一个数,相同数值不会重复出现。0是例外,可以反复出现。请设计一个算法,当你从该数列中随意选取5个数值,判断这5个数值是否连续相邻。 注意: - 5个数值允许是乱序的。比如:8 7 5 0 6 - 0可以通配任意数值。比如:8 7 5 0 6 中的0可以通配成9或者4 - 0可以多次出现。 - 复杂度如果是O(n2)则不得分。 13、设计一个算法,找出二叉树上任意两个结点的最近共同父结点。 复杂度如果是O(n2)则不得分。 14、一棵排序二叉树,令f=(最大值+最小值)/2, 设计一个算法,找出距离f值最近、大于f值的结点。 复杂度如果是O(n2)则不得分。 15、一个整数数列,元素取值可能是1~N(N是一个较大的正整数)中的任意一个数,相同数值不会重复出现。 设计一个算法,找出数列中符合条件的数对的个数,满足数对中两数的和等于N+1。 复杂度最好是O(n),如果是O(n2)则不得分。 谷歌八道面试题 16、正整数序列Q中的每个元素都至少能被正整数a和b中的一个整除,现给定a和b,需要计算出Q中的前几项,例如,当a=3,b=5,N=6时,序列为3,5,6,9,10,12 (1)、设计一个函数void generate(int a,int b,int N ,int * Q)计算Q的前几项 (2)、设计测试数据来验证函数程序在各种输入下的正确性。 17、有一个由大小写组成的字符串,现在需要对他进行修改,将其中的所有小写字母排在答谢字母的前面(大写或小写字母之间不要求保持原来次序),如有可能尽量选择时间和空间效率高的算法c语言函数原型void proc(char *str)也可以采用你自己熟悉的语言 18、如何随机选取1000个关键字 给定一个数据流,其中包含无穷尽的搜索关键字(比如,人们在谷歌搜索时不断输入的关键字)。如何才能从这个

Java经典面试题大全_带答案

Java经典面试题带答案一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code(字节码) C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行(构造器) D.一个class只能定义一个constructor 答案:C 4.提供Java存取数据库能力的包是() A.Java.sql /sql/数据库还有Oracle 也是一种数据库 B.java.awt C.https://www.doczj.com/doc/39377600.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环

答案:C 7.下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{}包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.下列语句正确的是() A.形式参数可被视为localvariable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数 D.形式参数不可以是对象 答案:A 9.下列哪种说法是正确的() A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法 答案:D 二、多项选择题 1.Java程序的种类有() A.类(Class) B.Applet C.Application D.Servlet 2.下列说法正确的有() A.环境变量可在编译sourcecode时指定 B.在编译程序时,所能指定的环境变量不包括class path C.javac一次可同时编译数个Java源文件 D.javac.exe能指定编译结果要置于哪个目录(directory)答案:BCD 3.下列标识符不合法的有() A.new B.$Usdollars C.1234 D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类 C.intnumber=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 答案:BCD 5.不能用来修饰interface的有()

【最全最详细】批处理经典入门教程

批处理经典入门教程!(从不懂到高手) 例一、先给出一个最easy的批处理脚本让大家和它混个脸熟,将下面的几行命令保存为name.bat然后执行(以后文中只给出代码,保存和执行方式类似): 代码如下: ping https://www.doczj.com/doc/39377600.html, > a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt ping https://www.doczj.com/doc/39377600.html, >> a.txt exit 是不是都能看的懂?是不是很easy?但它的作用却是很实用的,执行这个批处理后,可以在你的当前盘建立一个名为a.txt的文件,它里面记录的信息可以帮助你迅速找到速度最快的QQ服务器,从而远离“从服务器中转”那一痛苦的过程。这里>的意思,是把前面命令得到的东西放到后面所给的地方,>>的作用,和>的相同,区别是把结果追加到前一行得出的结果的后面,具体的说是下一行,而前面一行命令得出的结果将保留,这样可以使这个a.txt 文件越来越大(想到如何搞破坏了??)。By the way,这个批处理还可以和其他命令结合,搞成完全自动化判断服务器速度的东东,执行后直接显示速度最快的服务器IP,是不是很爽?后面还将详细介绍。 例二、再给出一个已经过时的例子(a.bat): @echo off if exist C:\Progra~1\Tencent\AD\*.gif del C:\Progra~1\Tencent\AD\*.gif a.bat 为什么说这是个过时的例子呢?很简单,因为现在已经几乎没有人用带广告的QQ了(KAO,我的QQ还显示好友三围呢!!),所以它几乎用不上了。但曾经它的作用是不可小窥的:删除QQ的广告,让对话框干干净净。这里用的地址是QQ的默认安装地址,默认批处理文件名为a.bat,你当然可以根据情况自行修改。在这个脚本中使用了if命令,使得它可以达到适时判断和删除广告图片的效果,你只需要不关闭命令执行后的DOS窗口,不按CTRL+C强行终止命令,它就一直监视是否有广告图片(QQ也再不断查看自己的广告是否被删除)。当然这个脚本占用你一点点内存,呵呵。 例三,使用批处理脚本查是否中冰河。脚本内容如下: 复制代码代码如下: @echo off

四大会计师事务所面试题

四大会计师事务所面试题 篇一:四大会计师事务所面试题 四大会计师事务所经典企业面试题 所谓“四大”,指的是国内最有实力的四大会计师事务所,即“安永大华”、“普华永道中天”、“德勤华永”和“毕马威”。不少有着丰富面试经验的大学生们都有过这种体验,一些大公司的笔试面试题常与“四大”惊人相似。“四大”的面试题眼下正在求职者中流行,对于“面霸”来说,他们修炼的第一步就是从网上收集各种“四大”面试的模式和题型,然后根据这些套路来游刃有余地应付各大名企。许多人纷纷表示,他们从“四大”的招聘中获得了许多有效的实战经验,因为四大的面试流程在外企中有很强的针对性,如果能够成功应对他们的试题,那么,其他的招聘面试也一定能够驾轻就熟。“四大”为何“经典”?“安永大华”、“普华永道中天”,“德勤华永”和“毕马威”的面试题之所以成为许多外企效仿的“样板题”,有三个非常重要的原因:一是因为“四大”进驻校园的招聘时间几乎是所有大企业中最早的,例如德勤的宣讲会是10月底召开的,普华永道是11月初,使得他们的题型有充分的时间在业界流通。其次也是非常关键的一点,那就是实际上很多大公司招聘都并非自己命题,而是把面试题交给专门的面试公司负责。因此,有一些公司往往“共享”同一家出题的企业,这使得“似曾相识”的几率大大提升。第三是因为通常一些知名企业的大学生面试都有一套

严格的模式和流程,而“四大”作为它们其中的代表,每年的面试题都集中了这些企业对员工素质最为看重的部分和最有效的测试方式。这些都是促使“四大”的面试题成为“经典”的原因。 了解“四大”面试流程 “四大”面试既然有如此功效,那么,了解“四大”的面试流程,就等于拿到了一本“面试教科书”。作为最经典的面试流程,“四大”的招聘往往包含招聘中最重要的几个环节。 其一是职业能力倾向测试,它能够测试出一个人的性格,面对压力和挑战的承受能力和其他一系列职业特征品质。在面试中它虽然只是作为参考因素,但往往在最后时刻对于你最终的去留有决定性的影响。例如,当被问及“谁一直对你的职业生涯有重要影响”时,正是试图了解你的求职动机、工作经验和能力特长,同时考察你的思维连贯性、语言表达力等等。 第二是逻辑类题型和智力类题型。这类题目多在笔试时出现,内容多种多样,如脑筋急转弯、趣味数学等等,题目主要是考察你的思维能力,有时候根本没有一个固定的答案,关键是你在回答中体现出来的思路。从这点来说,解答的过程更加重要。 例如:一个正三角形的每个角上各有一只蚂蚁。每只蚂蚁开始朝另一只蚂蚁做直线运动,目标角是随机选择。蚂蚁互不相撞的概率是多少?答案可以是:只有两种方法可以让蚂蚁避免相撞:或者它们全部顺时针运

相关主题
文本预览
相关文档 最新文档