文件垃圾测试的真正问题
给你一个资料,很详细的,你可以自己做。
如何创建批处理文件?
听完批档不要觉得骄傲。其实很简单。你用过记事本吗?二手?好的。打开记事本,不写任何内容,然后选择文件并保存。选择所有文件作为保存类型,文件名将被命名为*。bat,代表文件名。你可以随便拿。保存后,查看保存的地方,白色窗口中会出现一个带黄色齿轮的图标。这是您创建的批处理文件。双击它就可以运行它,但是现在他还没有在里面输入任何命令。所以他跑的时候什么都不会做。当我们想给这个*增加点什么的时候。bat文件,只要右击他,选择编辑,然后我们就可以打开记事本,输入命令了。
批处理文件中有哪些命令?
批处理文件中的命令暂时可以理解为dos命令,后面再解释。批处理,顾名思义,就是很多东西堆在一起进行处理。换句话说,就是在里面写一系列的dos命令,然后逐个执行。其效果与在cmd中键入dos命令相同。在批处理中写完之后,双击它就可以运行了。你不必一次又一次地在里面输入命令。这是批处理文件。
除了运行dos命令,他还可以支持选择结构if、循环结构for、goto等。,有点类似C,但远不如C全面,写作语言很不规范。
批处理语法:
先说最基础的@echo off
Echo的意思是回旋加速器,这里是回声的意思,echo off是关闭回声的意思。前面的@表示离线回显也不会回显。可以尝试去掉@和整行。@的另一个功能是在执行批处理文件后自动恢复命令echo。如果第一句话是ECHO OFF,那么在执行批处理文件后,命令提示符将不会显示。
比如我们先创建一个1。bat文件,我们将输入:
然后,Dir保存在c: \下。然后我们运行cmd,进入c盘根目录,输入1.bat,就会显示:
c:\ & gt;目录
驱动器c中的卷没有标签。
该卷的序列号为0C5D-07FF。
C:\目录
这是一个很好的例子。DIR & gt窗子
2004年8月25日00:51 & lt;DIR & gt文档和设置
...........
丙:\
如果1的内容。蝙蝠被改造成
回声
目录
然后在cmd中输入1.bat,就会显示出来。
c:\ & gt;Echo off //因为运行了Echo off,所以没有显示dir命令,直接显示结果。
驱动器c中的卷没有标签。
该卷的序列号为0C5D-07FF。
C:\目录
这是一个很好的例子。DIR & gt窗子
2004年8月25日00:51 & lt;DIR & gt文档和设置
.....
丙:\
如果1.bat文件被修改为:
@关闭回声
目录
它显示为:
c:\ & gt;1.bat //与之前不同的是,没有显示echo off,因为加了@所以@后面的内容没有显示。
echo是关的,所以不显示后面的命令,直接显示结果。
驱动器c中的卷没有标签。
该卷的序列号为0C5D-07FF。
C:\目录
这是一个很好的例子。DIR & gt窗子
2004年8月25日00:51 & lt;DIR & gt文档和设置
....
丙:\
通过以上对比,相信你已经完全掌握了echo off命令。现在是1...写起来好累!!!洗了个澡就睡觉了。
-
我是早上6点被拉起来的...我运气不好,继续写吧。
-
接下来是调用命令:
Call是打电话的意思,不是“哦,妈的”:)。打电话就是打电话。如果有两个批处理文件,a.bat和B.bat,我想在a.bat中间运行B.bat,怎么运行?其实很简单。只要在a.bat文件中输入call命令,就可以在a.bat运行的同时运行b.bat,b.bat结束后继续执行a.bat。
呼叫命令格式:
调用[驱动器:][路径]文件名[批处理参数]
Batch-parameters指定批处理程序所需的命令行信息。
例如,我们在c盘的根目录下创建一个. bat文件,内容如下:
回声这是一只蝙蝠
呼叫d:\b.bat
回声完成
然后在D盘根目录下创建b.bat,内容如下:
艾可,这是蝙蝠
保存后打开cmd,进入c盘根目录,然后输入1.bat,如下图:
c:\ & gt;蝙蝠
c:\ & gt;回声这是一只蝙蝠
这是一只蝙蝠
c:\ & gt;呼叫d:\b.bat
c:\ & gt;艾可,这是蝙蝠
这是蝙蝠
c:\ & gt;回声完成
完成的
从例子中很容易看出,先运行a.bat的内容,调用b.bat后再调用b.bat,运行b.bat后返回a.bat,再运行调用b.bat后的echo done语句,直到运行a.bat的所有批处理命令。
注意:其中有一个[批处理参数]。如果我的朋友能告诉我,我将不胜感激。
暂停命令
暂停批处理程序的执行,并显示一条消息,提示用户按任意键继续执行。该命令只能在批处理程序中使用。
Rem命令:
表示该命令后面的字符是解释行(注释),不执行,仅供以后参考(相当于程序中的注释)。
同时可以用两个冒号代替rem。例如,::相当于一个REM。但两者有一个区别,就是如果你用::作为注释,它不会回显,即使你键入echo on来强制回显。同时,REM可以在config.sys中添加注释。
语法:rem[commnet]
批处理文件参数:
变得有点基础的人都知道,函数是有参数的。批处理文件也有参数。
比如希望可以帮助没有语言基础的人很好的理解。
我先举个例子。首先在c盘根目录下创建一个批处理文件A. bat,输入内容。
echo %1
然后打开cmd,再进入c盘根目录,输入:a“这是一个残书”。
结果如下:
c:\ & gt;a.bat“这是一个测试”
c:\ & gt;echo“这是一个测试”
“这是一个测试”
在输入A“这是一个残书”中,A是新建的a.bat的文件名A(后者。bat可以写也可以不写),A后面的句子“这是一个残书”就是参数。此处写入的参数将在程序运行时自动放入批处理程序。它放在哪里?就放在%1吧。
看这个例子,让我们看看参数的完整定义:
批处理文件也可以像C语言中的函数一样使用参数(相当于DOS命令的命令行参数),需要一个参数表达式“%”。
%[1-9]表示一个参数,指运行批处理文件时文件名后添加的空格(或制表符)分隔的字符串。变量的范围可以从%0到%9,%0表示批处理命令本身,其他参数字符串按照%1到%9的顺序表示。//在我们上一个程序的例子中,有% 1,是参数,输入“这是一个测试”直接放在% 1的位置,于是程序变成了echo“这是一个测试”。
再举几个例子帮助你理解:
c:根目录下的下一个批处理文件名为b.bat,其内容如下:
@关闭回声
Type %1 //type是dos下的一个输出命令,可以用来输出文本文件的内容。例如,我们创建一个新的1.txt文件。
//输入其中的内容并保存。输入cmd。如果输入1.txt,就无法读取1.txt文件的内容,但是如果我
//想看怎么办?这时可以使用type命令,只要在cmd中输入type 1.txt,就会显示出来。
///1.txt文件。
类型%2
然后运行C:\ & gt;商务英语
%1:代表a.txt
%2:代表b.txt
所以上面的批处理命令变成了
@关闭回声
a.txt类型
b.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%-9%,当我们要引用第十个或者更多的参数时,就必须移动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参数,起始指针可以基于第一个参数后移。
=================
If转到高级语法选项
今天到此为止。我要收拾行李回学校了。也许如果goto选择高级语法将在沈阳完成。祝我好运。
======================
学校的“网吧”终于重新开张了,赶紧把剩下的吃完吧。
If命令
说白了,if相当于我们白话文里的if。
比如:如果A喜欢B,那么A就嫁给B,把这句话翻译成计算机语言就行了。
如果a喜欢b a,她必须嫁给b。
当然,计算机无法理解A喜欢B和A会嫁给B这两句话,这里只是为了方便大家举例说明。
If语句I * * *有三种模式,如下:
IF [NOT] string1==string2命令
如果[不存在]文件名命令
IF [NOT] ERRORLEVEL number命令
NOT指定仅当条件为false时,Windows XP才应执行此命令。
ERRORLEVEL number如果最后运行的程序返回的退出代码等于或大于指定的数字,则指定的条件为真。
String1==string2如果指定的文本字符串匹配,则指定的条件为真。
如果指定的文件名存在,则指定的条件为真。
命令如果条件满足,指定要执行的命令。如果指定的条件为FALSE,则该命令后面可以跟一个ELSE命令,该命令在ELSE关键字之后执行。
先解释第一个:
IF [NOT] string1==string2命令
自然语句含义:如果String1 = = String2,那么执行命令。
下面是另一个可以在实践中使用的if语句。
自然语句:如果输入参数为3,将显示“A = 3”。
计算机声明:
@关闭回声
如果“% 1”= =“3”回显“a=3”
或者写
@关闭回声
如果%1==3,则回显“a=3”
注意:测试的时候,因为在cmd下,输入1.bat3 .因为这里用到了传递参数,详见文章前面部分的“批处理文件参数”。
第二种类型:
如果[不存在]文件名命令
该命令语言检测文件是否存在。如果存在,请执行该命令。如果不存在,则不显示任何内容。
比如我们想检查E盘根目录下是否有一个名为2.txt的文件。如果存在,它将显示EXIST。如果它不存在,将不会显示任何内容。
批处理命令如下所示:
@关闭回声
如果存在e:\2.txt回显“存在2.txt”
第三种:
IF [NOT] ERRORLEVEL number命令
这个我引用一些资料,感觉别人写的比较详细。报价部分是粉红色的:
if errorlevel & lt数字>要执行的命令
很多DOS程序会返回一个数字值来表示程序运行后的结果(或状态)。可以通过if errorlevel命令判断程序的返回值,根据不同的返回值执行不同的命令(返回值必须按降序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。
例如如果错误级别2转到x2。
= = = =注= = = = = = = = = =
返回值从大到小的顺序不是必须的,只是执行命令是goto时的习惯用法。set作为执行命令时,一般是从小到大排列的。例如,要将返回代码放入环境变量中,您需要使用以下订单:
如果错误级别为1,则设置el=1
如果错误级别2设置el=2
如果误差等级3设置el=3
如果误差等级为4,则设置el=4
如果误差等级为5,则设置el=5
...
当然也可以用下面的循环来代替,原理是一样的:
对于%% e in (1 234 5677 8...)do if error level % % e set El = % % e//这是一个for循环,后面会介绍。如果不了解,可以先跳过。
如果errorlevel比较返回码,判断条件不是等于,而是大于等于。由于goto的跳转特性,从小到大排序会导致在较小的返回码处跳出;但是,由于set命令的“重复”赋值特性,从大到小排序会导致较小的返回代码“覆盖”较大的返回代码。
另外,虽然if error level = Command也是一个有效的命令行,但那只是command.com在解释命令行时忽略了=作为命令行分隔符。
选择命令
Goto命令
为了指挥
for命令实际上是一个循环命令。如果我们想重复一个语句,我们可以使用for命令。通过for命令,我们可以控制循环次数等等。
语法:
对(set)中的%变量执行命令[命令-参数]
%variable指定一个单字母可替换参数。
(set)指定一个或一组文件。可以使用通配符。
Command指定对每个文件执行的命令。
命令参数
为特定命令指定参数或命令行开关。
在批处理文件中使用FOR命令时,请使用%%variable来指定变量。
而不是%变量。变量名区分大小写,所以%i不同于% i。
不知道你懂不懂,其实很好理解。我们举个例子。我想用type打印c盘根目录下的所有bat文件和txt文件。下的命令。dos是类型*。蝙蝠*。txt。首先,将文件保存在驱动器C的根目录下,文件名为a.bat
按如下方式使用for命令:
对于%%t in (*。蝙蝠*。txt) do类型%%t
%%t实际上代表一个参数,其内容在in()中的括号内。也就是说,这句话中的%%t变成了*。bat *.txt. do是做的意思,类型后面跟%%t,%%t是*。bat *.txt .所以这个命令的原意就变成了
键入*。蝙蝠*。文本文件(textfile)
执行时输入cmd,然后在c盘根目录下输入a.bat,打印出所有文件内容,扩展名为。蝙蝠和。txt在驱动器c的根目录下.
这里注意:in后面有一个空格。
在xp下使用了for命令扩展,所以for的功能变得更加强大。我们来说一个真实的循环。
FOR/L %变量IN (start,step,end) DO命令[命令-参数]
这个集合表示从开始到结束递增的一系列数字。
因此,(1,1,5)将产生序列1 2 3 4 5,(5,1,1)将产生。
序列(5 4 3 2 1)
第一个1在起始位置,表示起始位置,第二个1在踏步位置,英文表示踏步。在这种情况下,意味着每个增量是1。下面的5在末端位置,表示末端的尺寸。
这句话的意思是从1(开始)增加,一次增加1(步进),直到5(结束)。
这有什么用?其实我感觉这个东西还是很有用的。举个最简单的例子,我们要重复“我是最棒的”这句话,显示10次。那么for命令如下所示:
对于/L %%e in (1,1,10)做回显“我是最好的”
此时cmd会重复输入“我是最好的”10次。
===============================================
你看完整篇文章了吗?良好的...对我来说写作不容易....
现在不知道大家对bat有什么样的认识。我现在的感觉是bat是dos命令的组合。你把所有的dos命令都写成bat命令,只要运行bat,就会一条一条的执行dos命令,这无疑提供了很多便利。
让我再举几个例子。
删除默认* * *享受:
我不知道你对默认* * *,了解多少,但这是一个隐患。现在唯一的办法似乎就是删除一个bat文件。该命令如下所示:
净份额IPC $/删除
净份额管理费用/删除
净份额c美元/删除
净份额d $/删除
净份额e美元/删除
……
里面的c d e是你的驱动器号。如果只有一个分区,就写net share c$ /delete。如果你有n个分区,那就一个一个写下来。
净份额d $/删除
净份额e美元/删除
净份额f美元/删除
净份额g美元/删除……
登录局域网的快捷方式(对方机器有密码,是2000以上系统)。
Net使用\ \ 192.168 . 0 . 1[密码]/用户:[用户名]
浏览器\ \ 192.168.0 . 1
Bat文件备份注册表
Set regfile=%date% //设置变量,下面的%regfile%会自动替换“今天的日期”。
如果存在“%regfile%”则转到结尾//如果找到以今天的日期命名的目录,则跳到文件的结尾。
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文件夹。
:结束