批处理实例
- 格式:rtf
- 大小:32.35 KB
- 文档页数:3
算法设计与分析——批处理作业调度(回溯法)之前讲过⼀个相似的问题流⽔作业调度问题,那⼀道题最开始⽤动态规划,推到最后得到了⼀个Johnson法则,变成了⼀个排序问题,有兴趣的可以看⼀下本篇博客主要参考⾃⼀、问题描述给定n个作业的集合{J1,J2,…,Jn}。
每个作业必须先由机器1处理,然后由机器2处理。
作业Ji需要机器j的处理时间为t ji。
对于⼀个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。
所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和。
批处理作业调度问题要求对于给定的n个作业,制定最佳作业调度⽅案,使其完成时间和达到最⼩。
例:设n=3,考虑以下实例:看到这⾥可能会对这些完成时间和是怎么计算出来的会有疑问,这⾥我拿123和312的⽅案来说明⼀下。
对于调度⽅案(1,2,3)作业1在机器1上完成的时间是2,在机器2上完成的时间是3作业2在机器1上完成的时间是5,在机器2上完成的时间是6作业3在机器1上完成的时间是7,在机器2上完成的时间是10所以,作业调度的完成时间和= 3 + 6 + 10这⾥我们可以思考⼀下作业i在机器2上完成的时间应该怎么去求?作业i在机器1上完成的时间是连续的,所以是直接累加就可以。
但对于机器2就会产⽣两种情况,这两种情况其实就是上图的两种情况,对于(1,2,3)的调度⽅案,在求作业2在机器2上完成的时间时,由于作业2在机器1上还没有完成,这就需要先等待机器1处理完;⽽对于(3,1,2)的调度⽅案,在求作业2在机器2上完成的时间时,作业2在机器1早已完成,⽆需等待,直接在作业1被机器1处理之后就能接着被处理。
综上,我们可以得到如下表达式if(F2[i-1] > F1[i])F2[i] = F2[i-1] + t[2][i]elseF2[i] = F1[i] + t[2][i]⼆、算法设计类Flowshop的数据成员记录解空间的结点信息,M输⼊作业时间,bestf记录当前最⼩完成时间和,数组bestx记录相应的当前最佳作业调度。
批处理for命令详解!⼤纲⼀前⾔⼆ for语句的基本⽤法三 for /f (delims、tokens、skip、eol、userbackq、变量延迟)四 for /r (递归遍历)五 for /d (遍历⽬录)六 for /l (计数循环)⼀、前⾔在批处理中,for是最为强⼤的命令语句,它的出现,使得解析⽂本内容、遍历⽂件路径、数值递增/递减等操作成为可能;配合if、call、 goto等流程控制语句,更是可以实现脚本复杂的⾃动化、智能化操作;合理使⽤for语句,还能使代码⼤为简化,免除各位编写⼤量重复语句之苦。
⽽能否熟练使⽤for语句,已经成为衡量⼀个⼈批处理⽔平⾼低最主要的标准。
在这个系列教程中,我将通过实际应⽤中频繁出现的例⼦,带领⼤家步⼊for语句的神奇之门,⼀步步迈向for语句的魔幻殿堂,使得⼤家在实际的应⽤中,能独⽴写出简洁⾼效的代码,在批处理的世界⾥⾃由驰骋。
注意:以下的讲解,都是基于简体中⽂版Windows XP Pro SP3的操作系统环境。
⼆、for语句的基本⽤法正如⾊彩缤纷的七彩光芒是由红绿蓝三原⾊构成的⼀样,最复杂的for语句,也有其基本形态,它的模样是这样的:在cmd窗⼝中:FOR %variable IN (set) DO command [command-parameters]在批处理⽂件中:FOR %%variable IN (set) DO command [command-parameters]具体例⼦:For %i in (1 2 3) do @echo %i之所以要区分cmd窗⼝和批处理⽂件两种环境,是因为在这两种环境下,命令语句表现出来的⾏为虽然基本⼀样,但是在细节上还是稍有不同。
最明显的⼀个差异就是:在cmd窗⼝中,for之后的形式变量I必须使⽤单百分号引⽤,即%i;⽽在批处理⽂件中,引⽤形式变量i必须使⽤双百分号,即%%i。
我们先来看⼀下for语句的基本要素都有些什么:1、for、in和do是for语句的关键字,它们三个缺⼀不可;2、%%I是for语句中对形式变量的引⽤,就算它在do后的语句中没有参与语句的执⾏,也是必须出现的;3、in之后,do之前的括号不能省略;4、command1表⽰字符串或变量,command2表⽰字符串、变量或命令语句;现在,你可能已经会写⼀个简单的for语句了,⽐如:[code1]@echo offfor %%I in () do echo %%Ipause保存为批处理⽂件并执⾏,将会在弹出的批处理窗⼝中看到这样的信息:请按任意键继续...很快地,你会觉得这个for语句是如此的简单,简单到你丝毫感受不出它的强⼤:这个for语句,和我直接⽤echo语句没什么两样啊!是的,演⽰代码永远都只是演⽰⽽已,就像⼤多数⾼级语⾔的教科书⼀样,在引导新⼿学习的时候,基本上都是千篇⼀律地告诉⼤家如何编写⼀个能显⽰ hello world! 的窗⼝,从这些演⽰代码中,你看不到它们具有多少实⽤性,你只是感到有点好奇:咦,居然弹出了⼀个窗⼝?⽚刻之后,你就会觉得索然⽆味。
批处理Set命令详解让你理解set命令set,E⽂翻译过来就是“设置”的意思,相当于数学⾥的“令”。
如:set X=5,就是令X=5的意思。
语法形式:SET [variable=[string]]SET /P variable=[promptString]SET /A expression⼀、SET [variable=[string]]⽰例1:@echo offsetpause显⽰所有的变量的值⽰例2:@echo offset var=我是值echo %var%pause请看 set var=我是值 ,这就是BAT直接在批处理中设置变量的⽅法!set 是命令 var是变量名 =号右边的"我是值"是变量的值在批处理中我们要引⽤这个变量就把var变量名⽤两个%(百分号)扩起来,如%var%⼆、SET /P variable=[promptString]有时候我们需要提供⼀个交互界⾯,让⽤户⾃⼰输⼊变量的值,然后我们在来根据这个值来做相应操作,现在我就来说说这SET 的这种语法,只需要加⼀个"/P"参数就可以了!实例1:@echo offset /p var=请输⼊你的名字:echo 您的名字是:%var%pauseset /p 是命令语法 var是变量名 =号右边的"请输⼊变量的值: ",这个是提⽰语,不是变量的值了!运⾏后,我们在提⽰语后⾯直接输⼊robin,就会显⽰⼀⾏您” 您的名字是:robin”三、SET /A expression/A 命令⾏开关指定等号右边的字符串为被评估的数字表达式。
该表达式解析很简单并以递减的优先权顺序⽀持下列操作:() - 分组! ~ - - ⼀元运算符* / % - 算数运算符+ - - 算数运算符<< >> - 逻辑移位& - 按位“与”^ - 按位“异”| - 按位“或”= *= /= %= += -= &= ^= |= <<= >>= - 赋值, - 表达式分隔符set的/A参数就是让SET可以⽀持数学符号进⾏加减等⼀些数学运算!现在开始举例⼦介绍这些数学符号的⽤法:看例⼦这⾥的例⼦请直接在CMD下拷贝命令运⾏,不需要保存为BAT!set /a var=1 + 1set /a 语法, var变量名 1 + 1 数学式⼦拷贝运⾏后会直接显⽰⼀个2,或者运⾏完后我们输⼊echo %var%,也是⼆,这就是&nbs p ;。
批处理FOR命令详解-就是这里-51CTO技术博客批处理FOR命令详解 2009-06-03 18:16:48标签:批处理 for对所有的批处理初学者来说,for的应用是最难理解以及掌握的。
本文由浅入深,为大家专门讲解for的用法,希望大家喜欢。
首先应该明确的是,for不是一个简单的命令,它的用法比较复杂,它还可以带四个参数(/L /D /R /F),其中:/L和/F参数是最经常用到的。
当然,它本身也可以不带参数,下面我们通过具体的例子来讲解for的运用。
一、不带参数的for:将以上代码保存为批处理文件(如何保存?),然后运行,可以发现屏幕上显示1 2 3 4 5(每字一行)是不是明白了一些?它的整个运行机制我们可以这样看:for不停的从括号中拿出5个“东西”来(以空格做间隔),并将这5个“东西”依次传给临时变量%%i,同时把这个变量echo出来....从这个例子我们可以看出,for的基本用法是:for 变量 in (目标) do 干什么?变量常用%%i 来表示,当然也可以换成%%j;目标就是待处理的对象集合,比如这里的1 2 3 4 5;这里的干什么的内容为:批处理命令。
【相关习题:】将你的名字用for命令分三行显示出来二、带参数 /L 的for (这里的参数/L 可以理解为 "list" 的意思,代表一个数列)先看测试代码:复制内容到剪贴板代码:显示结果也为:1 2 3 4 5(每字一行)它的意思和上面的意思差不多,但是括号中的对象却不需要写成1 2 3 4 5 的形式了,而是:1 1 5,因为它启用了参数 /L ,就是告诉for,这个括号里的对象是个数列,怎样的数列?就是以 1 开始,步长为1 ,结束值为5的一个等差数列,再举个实例:复制内容到剪贴板代码:::显示从 10 - 20 的所有偶数:【相关习题:】显示 1~20 间能被5整除的整数三、带参数 /f 的for(这里的参数/F可以理解为“file”的意思,代码处理对象为文本串)参考教程:for 命令 /f 参数通俗讲解四、for的 /D 和/R 参数(这两个参数个人比较少用)1>/D参数(常用来查询当前目录或者指定目录的文件夹)基本用法:FOR /D %variable IN (set) DO command [command-parameters]如:查询F盘根目录下的文件夹复制内容到剪贴板代码:夹假设本批处理文件保存在:F:\test下运行以下批处理代码,将会查询 F:\test下的文件夹复制内容到剪贴板代码:/r参数基本用法:FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]检查以[drive:]path 为根的目录树中,所有符合(set)的文件或者文件夹。
Photoshop批处理与图片处理教程第一章:引言Photoshop作为一款专业的图像处理软件,被广泛应用于各个领域。
批处理是其重要的功能之一,可以帮助用户快速完成重复性的任务,提高工作效率。
本文将介绍Photoshop批处理的基本概念和操作方法,并结合实例详细讲解如何使用批处理来进行图片处理。
第二章:批处理概述2.1 批处理的定义与作用批处理是指一次性对多个图像进行相同或类似操作的方法。
它可以减少手动操作的重复性,提高效率。
在图像处理中,批处理可以被用来调整图像的尺寸、颜色校正、添加特效等。
2.2 批处理的实现方式Photoshop提供了多种实现批处理的途径,包括动作脚本、图像处理程序、动作向导等。
用户可以根据具体需求选择合适的方式来进行批处理操作。
第三章:动作脚本的应用3.1 动作脚本的创建与记录在Photoshop中,用户可以创建一个包含多个操作步骤的动作脚本,并将其保存下来以备后续使用。
使用动作脚本录制图像处理过程,可以方便地将同样的操作应用于多个图片。
3.2 动作脚本的批量处理一旦动作脚本被创建,用户可以选择批量处理多个图片。
在使用动作脚本进行批处理时,用户可以选择是否自动保存处理后的图片,以及指定处理后的保存格式等。
第四章:图像处理程序的利用4.1 图像处理程序的功能与用法Photoshop中的图像处理程序可以通过命令行进行操作,以完成对多个图像的批处理工作。
用户可以通过简单的命令行参数控制图像的处理方式。
4.2 图像处理程序的批量操作通过图像处理程序,用户可以一次性处理多个图像。
这个功能非常适合在批量处理时进行图像尺寸调整、文件格式转换、颜色修正等操作。
第五章:动作向导的介绍5.1 动作向导的定义与特点动作向导是Photoshop中的一个功能强大的工具,它可以将多个动作组合起来,并生成一个新的操作流程。
动作向导的灵活性和可自定义性,使得用户可以根据自身需求进行高级的图片处理工作。
5.2 动作向导的应用举例举例说明动作向导的应用场景,如通过动作向导实现批量添加水印、制作图像特效等。
【分支限界法】批处理作业调度问题问题描述给定n个作业的集合J1,J2,…,J。
每个作业必须先由机器1处理,然后由机器2处理。
作业Ji需要机器j的处理时间为tji。
对于一个确定的作业调度,设Fji是作业i在机器j上完成处理的时间。
所有作业在机器2上完成处理的时间和称为该作业调度的完成时间和。
批处理作业调度问题要求对于给定的个作业,制定最佳作业调度方案,使其完成时间和达到最小例:设n=3,考虑以下实例:作业作业作业这3个作业的6种可能的调度方案是1,2,3;1,3,2;2,1,3;2,3,1;3,1,2;3,2,1;它们所相应的完成时间和分别是19,18, 20,21,19, 19。
易见,最佳调度方案是1,3,2,其完成时间和为18。
限界函数批处理作业调度问题要从n个作业的所有排列中找出具有最小完成时间和的作业调度,所以如图,批处理作业调度问题的解空间是一颗排在作业调度问相应的排列空间树中,每一个节点E都对应于一个已安排的作业集,……〈。
以该节点为根的子树中所含叶节点的完成时间和可表示为:设|M|=r,且L是以节点E为根的子树中的叶节点,相应的作业调度为{pk,k=1,2,……1其中pk是第k个安排的作业。
如果从节点E到叶节点L的路上,每一个作业pk在机器1上完成处理后都能立即在机器2上开始处理,即从p r+1开始,机器1没有空闲时间,则对于该叶节点L有:Z七=2 [耳心+(〃-左+1居网+%热]=d£叩+1i更M注:(n-k+1)tipk因为是完成时间和,所以,后续的n-k+1)个作业完成时间和都得算上ipk。
如果不能做到上面这一点,则si只会增加,从而有:下;, 一」。
类似地,如果从节点E开始到节点L的路上,从作业p r+1开始,机器2没有空闲时间,则:日25;E [max(勺,/+呻4) + ("4 + 1H热]k=r+l冈同理可知,s2是三;•的下界。
由此得到在节点E处相应子树中叶节点完成时间和的下界是:/吓 J+maxf3}ieM注意到如果选择Pk,使tipk在k>=r+1时依非减序排列,S1则取得极小值。
【导言】近年来,随着气候变化的加剧,对气象数据的研究需求也越来越迫切。
我国地面气象日值数据集是我国气象局发布的一份重要数据集,包含了丰富的气象信息,涉及气温、降水、风速等多个指标,对气象研究和气候分析具有重要价值。
本文将介绍如何利用Matlab代码对我国地面气象日值数据集进行批处理,以加快数据处理的效率。
【主题一:我国地面气象日值数据集的概述】1. 我国地面气象日值数据集包含了哪些气象信息?2. 该数据集的数据来源及发布机构是什么?3. 该数据集的重要性和应用价值是什么?【主题二:Matlab代码批处理的基本原理】1. 使用Matlab进行批处理的优势和特点是什么?2. 如何利用Matlab代码对数据集进行读取、处理和分析?【主题三:Matlab代码批处理实例】1. 使用Matlab对气温数据进行批量读取和绘图2. 利用Matlab对降水数据进行统计分析和可视化展示3. 对风速数据进行时间序列分析和趋势预测的实例展示【结语】通过Matlab代码的批处理,可以更加高效地对我国地面气象日值数据集进行处理和分析,为气象研究和气候分析提供了便利。
希望本文能够帮助读者更好地理解和应用这一方法,加快数据处理效率,推动气象科学研究的发展。
以上是本文的大致结构和内容提纲,我会在接下来的文章中逐一展开详细介绍,请大家关注。
我国地面气象日值数据集的概述我国地面气象日值数据集是我国气象局发布的一份重要数据集,包含了丰富的气象信息,涉及气温、降水、风速等多个指标。
这些数据的来源主要是来自于全国各地的气象观测站,通过长期的观测记录而积累起来的。
由于这些数据的全面性和广泛性,对气象研究和气候分析来说具有重要的价值。
气象日值数据集包含了许多重要的气象信息,其中包括了气温数据,降水数据和风速数据等。
这些气象信息的收集和整理,对于气象研究和气候分析都具有非常重要的作用。
通过对气温数据的分析,可以更好地了解气温的变化规律,包括日变化、季节变化和年际变化等。
批处理命令——for【1】for命令简介 先把for循环与for命令类⽐⼀下,这样学习理解快。
for 循环语句,⼀般格式如下:1for (表达式1;表达式2;表达式3)2 {3循环体;4 } 1. 表达式1 ⼀般为初始状态赋值表达式,给控制变量赋初值。
2. 表达式2 ⼀般为关系表达式或逻辑表达式,为循环控制条件。
3. 表达式3 ⼀般为每次执⾏循环体后向控制变量重新赋值的表达式(给控制变量增量或减量)。
4. 语句:循环体,⼀般为复合语句(即可能需要执⾏多条语句)。
举个实例:1for (int i=0; i < 100; ++i)2 {3 cout << i << endl;4 } for 命令,⼀般格式如下: 在cmd窗⼝中使⽤格式:FOR %variable IN (set) DO command [command-parameters] 在批处理脚本中使⽤格式:FOR %%variable IN (set) DO command [command-parameters] 1. 在cmd窗⼝中使⽤,变量名必须⽤单%引⽤(即:%variable);在批处理脚本中使⽤,变量名必须⽤双%引⽤(即:%%variable)。
2. for、in和do是for命令的三个关键字,缺⼀不可。
3. 关键字in之后,do之前的括号不能省略。
举个实例:新建⼀个⽂本⽂件,命名为fordemo,修改⽂件类型为bat,⽤Notepad++打开编辑内容为:1@echo off2for %%i in (1 2 3 4 5) do@echo %%i3pause>nul 执⾏结果: 嗯哼,原来for命令就这么简单?嗨,同学,不要浮躁,保持冷静,更要理智。
下⾯,且看对上例语句的分析: 从命令组成结构由左向右剖析,除过关键字,依次分别为: 1. 变量名为i,i太简单,作为变量名不具备见名知意的特点。
静态批处理,动态批处理,gpuinstance 的原理-回复静态批处理,动态批处理和GPU 实例在计算领域中起着重要作用。
静态批处理和动态批处理是在分布式计算环境中用于执行大规模数据处理任务的常用方法,而GPU 实例则是利用图形处理单元(GPU) 加速计算的一种硬件设备。
本文将逐步回答关于这三个主题的问题,深入探讨它们的原理、应用和优势。
一、静态批处理1. 什么是静态批处理?静态批处理是指在分布式计算环境中,事先将数据分成固定大小的批次,并将每个批次分配给不同的计算节点进行处理。
每个批次的大小在任务开始之前就确定,并且执行期间不会改变。
2. 静态批处理的原理是什么?静态批处理的原理基于任务的并行处理。
将数据分成批次后,每个计算节点独立处理一个批次,完成后再传递给下一个节点。
这种分批处理的方式有效地降低了计算节点之间的通信成本,提高了计算效率。
3. 静态批处理的优势有哪些?静态批处理具有以下优势:- 提高计算效率:并行处理多个批次可以缩短任务完成时间。
- 降低通信成本:由于数据被分批处理,节点之间的数据传递量减少,减少了通信开销。
- 简化管理:每个批次的大小固定,可以更好地调度计算资源。
二、动态批处理1. 什么是动态批处理?动态批处理是指在分布式计算环境中,根据节点的负载情况和数据的实时性,动态地调整批次的大小和分配策略。
与静态批处理不同,动态批处理可以根据实时需求动态地分配计算资源。
2. 动态批处理的原理是什么?动态批处理的原理基于负载均衡和任务调度。
根据节点的负载情况,动态决定每个节点处理的批次大小和分配策略,可以根据实时需求调整批次的大小,以平衡计算资源。
3. 动态批处理的优势有哪些?动态批处理具有以下优势:- 提高资源利用率:根据实时负载情况调整批次大小和分配策略,可以更好地利用计算资源。
- 提高任务响应性:根据数据实时性要求,及时分配计算资源,提高任务的响应性和实时性。
- 自适应调节:动态批处理可以根据负载情况自适应地调整批次大小,保证计算效率和负载均衡。
bat批处理教程(1)这是一篇技术教程,我会用很简单的文字表达清楚自己的意思,你要你识字就能看懂,就能学到知识。
写这篇教程的目的,是让每一个看过这些文字的朋友记住一句话:如果爱可以让事情变的更简单,那么就让它简单吧!看这篇教程的方法,就是慢!慢慢的,如同品一个女人、一杯茗茶,你会发现很多以前就在眼前的东西突然变的很遥远,而有些很遥远的东西却又突然回到了眼前。
先概述一下批处理是个什么东西。
批处理的定义,至今我也没能给出一个合适的----众多高手们也都没给出----反正我不知道----看了我也不一定信服----我是个菜鸟,当然就更不用说了;但我想总结出一个"比较合适的",而且我也相信自己可以把它解释的很清楚,让更多的菜鸟都知道这是个什么东西,你用这个东西可以干什么事情。
或许你会因为这篇文章而"无条件爱上批处理",那么我的目的就达到了----我就是要让你爱上它,我就这么拽,你能怎么着??真的,爱有时候就这么拽,就是这么没理由,就是这么不要脸!真的!按照我的理解,批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。
ok,never claver and get to business(闲话少说言归正传)。
批处理,也称为批处理脚本,英文译为BATCH,批处理文件后缀BAT就取的前三个字母。
它的构成没有固定格式,只要遵守以下这条就ok了:每一行可视为一个命令,每个命令里可以含多条子命令,从第一行开始执行,直到最后一行结束,它运行的平台是DOS。
批处理有一个很鲜明的特点:使用方便、灵活,功能强大,自动化程度高。
我不想让自己写的教程枯燥无味,因为牵缠到代码(批处理的内容算是代码吧?)的问题本来就是枯燥的,很少有人能面对满屏幕的代码而静下心来。
所以我会用很多简单实用的例子让读这篇教程的朋友去体会批处理的那四射的魅力,感受它那古灵精怪的性格,不知不觉中爱上批处理(晕,怎么又是爱?到底批处理和爱有什么关系?答案:没有!)。
例一、再给出一个已经过时的例子(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
netstat -a -n > a.txt
type a.txt | find "7626" && echo "Congratulations! You have infected GLACIER!"
del a.txt
pause & exit
这里利用了netstat命令,检查所有的网络端口状态,只需要你清楚常见木马所使用的端口,
就能很easy的判断出来是否被人种了冰河。然这不是确定的,因为冰河默认的端口7626,
完全可以被人修改。这里介绍的只是方法和思路。这里介绍的是方法和思路稍做改动,就变
成可以检查其他木马的脚本了,再改动一下,加进去参数和端口及信息列表文件后,就变成
自动检测所有木马的脚本了。呵呵,是不是很过瘾?脚本中还利用了组合命令&&和管道命令|,
后面将详细介绍。
例三、借批处理自动清除系统垃圾,脚本如下:
@echo off
if exist c:\windows\temp\*.* del c:\windows\temp\*.*
if exist c:\windows\Tempor~1\*.* del c:\windows\Tempor~1\*.*
if exist c:\windows\History\*.* del c:\windows\History\*.*
if exist c:\windows\recent\*.* del c:\windows\recent\*.*
将以上脚本内容保存到autoexec.bat里,每次开机时就把系统垃圾给自动删除了。这里需要
注意两点:一、DOS不支持长文件名,所以就出现了Tempor~1这个东东;二、可根据自己的
实际情况进行改动,使其符合自己的要求。
怎么样,看到这里,你对批处理脚本是不是已经有点兴趣了?是不是发现自己已经慢慢爱上
了这个东东?别高兴的太早,爱不是一件简单的事,它也许能带给你快乐和幸福,当然也能
让你痛苦的想去跳楼。如果你知道很难还敢继续的话,I 服了 YOU!继续努力吧,也许到最
后你不一定得到真爱(真的有这可能,爱过的人都知道),但你可以体会到整个爱的过程,就
是如此。 酸、苦和辣,有没有甜天知道。
为什么会把批处理和爱情扯上关系?不是我无聊,也不是因为这样写有趣多少,原因有二:
其一,批处理和爱情有很多相同的地方,有些地方我用“专业”的行话解释不清(我不怀疑
自己的表达能力,而是事情本身就不好说清楚),说了=没说,但用地球人都知道的爱情一比
喻(爱情是什么?我**怎么知道!!),没准你心里一下就亮堂了,事半功倍,何乐而不为?其
二,我这段时间状态不是很好,感冒发烧头疼鼻塞,但主要还是感情上精神摧残,搞的人烦
透了,借写教程之际感慨几句,大家就全当买狗皮膏药了,完全可以省略不看(也许还真有
点效果----不至于让你看着看着就睡着了,把头磕了来找我报销医药费)。说不定下次的教程
中大家还会看到杨过、张无忌等金老前辈笔下的英雄们。
看过第一章的朋友,一定对批处理有了初步的印象,知道它到底是用来干什么的了。但你知
道运用批处理的精髓在哪里吗?其实很简单:思路要灵活!没有做不到的,只有想不到的。
这和爱情就有点不同了,因为爱情的世界是两个人的世界,一厢情愿不叫爱情(补充:那叫
单恋。废话!)而批处理却是一个人的天堂,你可以为所欲为,没有达不到的境界!
批处理看起来杂乱无章,但它的逻辑性之强,绝对不比其他程序语言(如汇编)低,如果你
写的脚本是一堆乱麻,虽然每一行命令都正确,但从头执行到尾后,不一定得到你想要的结
果,也许是一屏幕的Bad command or fail name。这又和爱情有了共同点:按步骤来经营,
缺少或增多的步骤都可能导致不想看见的结果。陷入爱河的朋友,相信没有不肯定这句话的。
我的爱情批处理,输出的结果不是Bad command or fail name,屏幕是这么显示的:‘你的
爱情’不是内部或外部命令,也不是可运行的程序或批处理文件。然后就是光标不停闪动,
等待这下一次错误的输入。
从这一章开始,将由浅入深的介绍批处理中常用的命令,很多常见DOS命令在批处理脚本中
有这广泛的应用,它们是批处理脚本的BODY部分,但批处理比DOS更灵活多样,更具备自动
化。要学好批处理,DOS一定要有比较扎实的基础。这里只讲述一些比较少用(相对来说)
的DOS命令,常用命令如COPY、DIR等就不做介绍了(这些看似简单的命令实际复杂的很,
我怕自己都说不清楚!)。
例四、先看一个实例。这是一个很有意思的脚本,一个小巧实用的好东东,把批处理“自动
化”的特点体现的淋漓尽致。先介绍一下这个脚本的来历:大家都知道汇编程序(MASM)的
上机过程,先要对源代码进行汇编、连接,然后再执行,而这中间有很多环节需要输入很多
东西,麻烦的很(只有经历过的朋友才懂得)。如何使这个过程变的简单呢?在我们搞汇编课
程设计时,我“被逼”写了这个脚本,用起来很爽,呵呵。看看脚本内容:
@echo off
::close echo
cls
::clean screen
echo This programme is to make the MASM programme automate
::display info
echo Edit by CODERED
::display info
echo Mailto me : qqkiller***@sina.com
::display info
if "%1"=="" goto usage
::if input without paramater goto usage
if "%1"=="/?" goto usage
::if paramater is "/?" goto usage
if "%1"=="help" goto usage
::if paramater is "help" goto usage
pause
::pause to see usage
masm %1.asm
::assemble the .asm code
if errorlevel 1 pause & edit %1.asm
::if error pause to see error msg and edit the code
link %1.obj & %1
::else link the .obj file and execute the .exe file
:usage
::set usage
echo Usage: This BAT file name [asm file name]
echo Default BAT file name is START.BAT
::display usage