怎么写。蝙蝠?
驱动器c中的卷没有标签。
卷的序号是0C5D-07FFC:目录2004-08-25 00: 45
2004年8月25日00:51 & lt;DIR & gt文档和设置...........c:如果你改变1的内容。bat回显offdir,然后输入1。蝙蝠在cmd,它会显示C:& gt;Echo off //因为运行了Echo off,所以没有显示dir命令,直接显示结果。
驱动器c中的卷没有标签。
卷的序号是0C5D-07FFC:目录2004-08-25 00: 45
2004年8月25日00:51 & lt;DIR & gt文档和设置.....c:如果1。bat文件修改为@echo off。
目录显示为:C:& gt;1.bat //和之前的不一样。不显示echo off是因为添加了@所以不显示@后面的内容。而且因为增加了//echo off,后面的命令不显示,直接显示结果。
驱动器c中的卷没有标签。
卷的序号是0C5D-07FFC:目录2004-08-25 00: 45
2004年8月25日00:51 & lt;DIR & gt文档和设置...c:通过以上对比,相信你已经完全掌握了echo off命令。已经1点了...我厌倦了写作!!!我洗了个澡就睡觉了——其实很简单。只要在a.bat文件中输入call命令,就可以在b.bat运行的同时运行它,然后继续执行a.batcall命令格式:call[drive:][path]filename[Batch-parameters]Batch-parameters指定批处理程序所需的命令行信息。比如我们在c盘根目录下创建一个. bat文件,内容为:echo this is a.bat调用d: b.batecho done然后在D盘根目录下创建一个. bat,内容为:echo this is b.bat保存后打开cmd,进入c盘根目录,然后输入1.bat,如下图:C:& gt;batc:& gt;回声这是一只蝙蝠
这是一个. batc:& gt;调用d:b . batc:& gt;艾可,这是蝙蝠
这是b . batc:& gt;回声完成
Done从例子中很容易看出,就是先运行a.bat的内容,然后调用b.bat,直到遇到call b.bat,运行b.bat后返回a.bat,然后运行Call b.bat后的echo done语句,直到a.bat的所有批处理命令都运行完。注意:什么是[批处理参数]中的参数?
暂停批处理程序的执行,并显示一条消息,提示用户按任意键继续执行。该命令只能在批处理程序中使用。Rem命令:表示这个命令后面的字符是一个解释行(注释),不执行,仅供你以后参考(相当于程序中的注释)。同时可以用两个冒号代替rem。例如,::相当于一个rem。但两者有一个区别,就是如果你用::作为评论,他不会附和。即使你键入echo on来强制echo,也是不一样的。同时rem可以在config.sys语法中添加注释:rem[commnet]批处理文件参数:稍微有点编程基础的人都知道函数是有参数的。批处理文件也有参数。我来打个比方。希望能帮助没有语言基础的人很好的理解。让我从例子开始。首先在c盘根目录下创建一个批处理文件a.bat,输入内容echo %1,然后打开cmd,再输入c盘根目录,输入a“这是一个残书”得到如下结果:C:& gt;a.bat“这是一个测试”C:& gt;echo“这是一个测试”
在“这是一个测试”输入的一个“这是一个残书”中,a是新建的a.bat的文件名(后者。bat可以写也可以不写),a后面的句子“这是一个残书”就是参数。此处写入的参数将在程序运行时自动放入批处理程序。应该放在哪里?它被放置在%1。看例子,我们来看看参数的整个定义是怎样的:批处理文件也可以像C语言中的函数一样使用参数(相当于DOS命令的命令行参数),这需要一个参数表达式“%”。
%[1-9]表示一个参数,指运行批处理文件时文件名后添加的空格(或制表符)分隔的字符串。变量的范围可以从%0到%9,%0表示批处理命令本身,其他参数字符串按照%1到%9的顺序表示。//在我们上一个程序的例子中,有% 1,是参数,而作为参数的输入“这是一个测试”直接放在了% 1的位置,于是程序变成了echo“这是一个测试”。再举几个例子帮助你理解:C:根目录下的下一个批处理文件叫b.bat,内容如下:
@关闭回声
type % 1//是dos下的一个输出命令,可以用来输出文本文件的内容。比如我们新建一个1.txt文件//并输入,保存后输入cmd。如果输入1.txt,无法读取1.txt文件的内容,但是//想看怎么办?此时可以使用type命令,在cmd中键入Type1.txt就可以显示///1.txt文件的内容。
类型%2
然后运行c:>;商务英语
%1:代表a.txt
%2:代表b.txt,所以上面的批处理命令变成了@ echoofftypea.txt typeb.txt。
所以上面的命令会依次显示a.txt和b.txt文件的内容。没有编程基础的人可能会问,为什么要获取一个参数?后面加个参数有多麻烦?你为什么不直接写进去呢?!其实这种方式既有对的方面,也有错的方面。我们举个例子来说明一下。第一步,在c盘根目录下新建一个批处理文件,我们还是会命名为a.bat,将内容输入其中为:ping %1 //ping命令可以简单理解为测试一台机器是否开机。如果它是开着的,它会给你回送一个回应。然后输入cmd。我们想测试一下163的服务器是不是开着的,那么我们可以输入一个www.163.com对于知道ping命令的人,他们可以ping来检查,但是如果想ping的人不知道如何使用ping命令呢?这时候你可以提前把命令输入到批处理文件中,保存好,然后让不会用的人输入cmd来运行你的批处理文件,在文件名后面加上他要ping的网站地址就可以了。也就是说,他要ping 163,可以直接加163的网址,要ping新浪,可以直接加新浪的网址。这样他只需要输入一个参数,而不需要改变程序本身。整个程序的通用性大大提高。对于一个简单的ping命令,您可能认为不值得使用参数,或者直接更改它们。但是如果程序很多,一下子找不到地方改怎么办?所以,不管你是财哥,财哥,财姐,财姐,只要你跑,输入参数,结果就自己出来了。不用像你一样去想怎么写批处理文件。人只需要知道输入什么就能让批处理程序运行,而编写者要让不懂程序的人运行。批量参数非常简单。你明白吗?但是,如果您想了解更多关于批处理参数的信息,您可以继续阅读。如果你不想知道更多,现在知道这么多就够了。以下粉色内容为网上信息。= = = = = = = = = = = = = = = = = = = = = = = =因为参数只有1%。你必须移动DOS参数的起始指针。shift命令就扮演了这个移动指针的角色,将一个参数的起始指针移动到下一个参数,类似于C语言中的指针操作。示意图如下:初始状态,cmd是命令名,可以被%0引用。
cmd arg 1 arg 2 arg 3 arg 4 arg 5 arg 6 arg 7 arg 8 arg 9 arg 10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9在1移位后,无法引用cmd。
cmd arg 1 arg 2 arg 3 arg 4 arg 5 arg 6 arg 7 arg 8 arg 9 arg 10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9经过两次移位,arg1也被丢弃,%9点为空,没有参考意义。
cmd arg 1 arg 2 arg 3 arg 4 arg 5 arg 6 arg 7 arg 8 arg 9 arg 10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;& amp线;
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9遗憾的是,在win9x和DOS中不支持shift的反向操作。只有在nt内核命令行环境下,shift支持/n参数,起始指针可以基于第一个参数后移。
= = = = = = = = = = =如果goto选择高级语法,那就到此为止吧。我要收拾东西回学校了。也许如果goto选择高级语法要到沈阳才能完成。= = = = = = = = = = = = = = =.请花时间以通俗的方式来介绍if命令的其余部分。if相当于我们白话中的if。比如A喜欢B,那么A就嫁给B,这句话翻译成计算机语言。当然,计算机是不可能理解那两句话的:A喜欢B,A会嫁给B,这里只是为了方便你举个例子。IF语句I * *有三种模式。
IF [NOT] string1==string2命令
如果[不存在]文件名命令
If [not]错误级别编号命令not指定Windows XP仅在条件为假时执行该命令。ERRORLEVEL number如果最后运行的程序返回的退出代码等于或大于指定的数字,则指定的条件为真。String1==string2如果指定的文本字符串匹配,则指定的条件为真。如果指定的文件名存在,则指定的条件为真。命令如果条件满足,指定要执行的命令。如果指定的条件为FALSE,则该命令后面可以跟一个ELSE命令,该命令在ELSE关键字之后执行。先解释第一个:if[not]String 1 = = String 2 command自然语句含义:If String1 = = String2,然后执行命令,给出另一个可以实际使用的If语句。自然语句:如果输入参数为3,则显示计算机语句“A = 3”:@ echo off。
If "%1"=="3" echo "a=3 "或@echo off。
If %1==3 echo "a=3 "注意:测试时,因为在cmd下,输入1.bat 3。因为这里使用了传递参数,所以请参阅本文前面部分的“批处理文件参数”以获取详细信息。第二,如果[不存在]文件名命令用于检测文件是否存在。如果是,请执行该命令。如果不存在,则不会显示任何内容。比如我们想检查E盘根目录下是否有一个名为2.txt的文件。如果存在,它将显示EXIST。如果不存在,则不会显示任何内容。批处理命令如下:@echo off。
IF exist e:2 . txt echo“exist 2 . txt”第三种:IF [NOT] ERRORLEVEL number命令,我引用了一些资料,感觉别人写的比较详细。引用部分是粉红色的:如果要执行错误级别命令,许多DOS程序会返回一个数字值来表示程序运行后的结果(或状态)。可以通过if errorlevel命令判断程序的返回值,根据不同的返回值执行不同的命令(返回值必须按降序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。例如,如果错误级别2gotox2 = = =注意= = = = = = = = = =
没有必要把返回值按降序排列,只是执行命令是goto时的习惯用法。使用set作为执行命令时,通常按降序排列。例如,如果要将返回代码放入环境变量中,则需要使用下面的顺序形式:if error level 1 set El = 1。
如果错误级别2设置el=2
如果误差等级3设置el=3
如果误差等级为4,则设置el=4
如果误差等级为5,则设置el=5
...当然也可以用下面的循环来代替,原理是一样的:
对于%% e in (12345678...)do if error level % % e set El = % % e//这是一个for循环,后面会介绍。不明白错误级别不等于或大于等于就跳过比较返回码的判断条件。由于goto的跳转特性,从小到大排序会导致返回代码更小。由于set命令的“重复”赋值特性,从大到小排序将导致较小的返回代码“覆盖”较大的返回代码。另外,虽然if error level = Command也是一个有效的命令行,但那只是command.com在解释命令行时忽略了=作为命令行分隔符。
Choice命令goto命令for命令实际上是一个循环命令。如果我们想重复一个语句,我们可以使用for命令。通过for命令,我们可以控制循环次数等。语法:for % variable in(set)docommand[command-parameters]% variable指定一个单字母可替换参数。
(set)指定一个或一组文件。可以使用通配符。
Command指定对每个文件执行的命令。
命令参数
为特定命令指定参数或命令行开关。在批处理文件中使用FOR命令时,请使用%%variable来指定变量。
而不是%变量。变量名是区分大小写的,所以%i和% i不一样,不知道你懂不懂,还是很好理解的。我们举个例子。我想用type打印c盘根目录下的所有bat文件和txt文件。下的命令。dos是类型*。蝙蝠*。txt。首先将文件保存在c盘的根目录下。名称是a.bat使用for命令,如下所示:for %%t in (*。蝙蝠*。txt) do type %%t% t实际上是一个表示的参数,其内容在in in()中的括号内。换句话说,这句话中的%% t变成了*。蝙蝠*。txt。Do表示做,并执行type命令。而%%t是*。bat *.txt .所以这个命令的原意就变成了:当键入*。蝙蝠*。txt被执行,输入cmd,然后在c盘根目录下输入a.bat,就可以打印出所有文件内容,扩展名为。蝙蝠和。txt放在c盘根目录下,这里注意in后面有一个空格。在xp下,启用了for命令的扩展,因此for的功能发生了变化。
对于(start,step,end)docommand[command-parameters]中的/l%变量,此集合以增量形式表示从开始到结束的数字序列。
因此,(1,1,5)将产生序列1 2 3 4 5,(5,1,1)将产生。
在序列(5 4 3 2 1)中,第一个1在起始位置,表示起始位置,第二个1在步进位置,表示英语中的步进。在这里,它意味着每个增量是1。下面的5在末端位置,表示末端的尺寸。这句话的意思是从65438+。其实我感觉这个东西还是很有用的。举个最简单的例子,我们想呼应“我是最棒的”这句话,显示10次。那么for命令如下:for/l%% e in (1,1) do echo“我就是那个”。Cmd会反复输入“我是最好的”10次。= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =嗯...对我来说写作不容易...现在不知道大家对bat有什么样的认识。我现在的感觉是bat是dos命令的组合。如果把所有的dos命令都写成bat命令,那么只要运行bat就会一条一条的执行,无疑提供了很多便利。我再给你举几个例子。删除默认* * *享受:不知道你对默认* * *享受了解多少。反正是隐患。现在唯一的办法似乎就是做一个bat文件删除。命令如下:net share ipc$ /delete。
净份额管理费用/删除
净份额c美元/删除
净份额d $/删除
净份额e美元/删除……...里面的c d e是你的驱动器号。如果只有一个分区,就写net share c$ /delete。如果你有n个分区,那就一个一个写下来。净份额d $/删除
网络共享e $/删除网络共享f $/删除网络共享g $/删除...登录局域网的机器的快捷方式(对方机器有密码,是2000以上的系统)net use 192.168 . 0 . 1[密码]/用户:[用户名]。
explorer 192.168 . 0 . 1 bat文件备份注册表设置regfile=%date% //设置变量,如果存在“今天的日期”% regfile % " goto end "/如果找到以今天的日期命名的目录,则跳到该文件。
Md临时//创建临时目录
打电话1.bat //打电话1.bat。
德尔1.bat
任1.bat
任3 .蝙蝠2 .蝙蝠
任
回送移动“% regfile %”temp & gt;4.bat //编写一个bat文件,将“按日期命名的目录”移动到temp。Md "%regfile%" //在同一天创建按日期命名的目录。
Cd "%regfile%" //转到reg export hkcu hkcu.reg //并导出注册表。
出口hklm hklm.reg
//HKEY _当前_用户缩写hkcu。存储当前用户的个人数据。
//HKEY_LOCAL_MACHINE缩写hklm。系统的核心数据
激光唱片..
del tree/y temp & gt;nul///返回父目录,删除temp文件夹。
:结束