批处理实验报告

批处理实验报告
批处理实验报告

二、批处理系统中作业调度

1.实验目的

加深对作业调度算法的理解。

2.实验内容

此实验模拟批处理系统中的作业调度,并采用响应比高者优先算法作为作业调度算法。

3.实验说明

从输入井中选择作业读入内存,使其获得处理器,得到运行的机会,即为作业调度。输入井中的作业用“作业控制块”(JCB)标识,为了进行作业调度,将作业控制块组成一个队列,这个队列称为后备队列。

模拟实验中没有实际作业,作业控制块中的信息内容只使用了模拟实验中需要的数据。作业控制块中包括作业名、作业大小、所需打印机台数、所需磁带机数量、作业估计执行时间、作业等待时间、指向下一个作业控制块的指针等内容。将作业控制块组成一个队列,实验中采用动态链表的方式模拟作业的后备队列。作业控制块采用结构型数据模拟。

模拟实验中,主存采用可移动的可变分区管理方法,即只要主存空闲区总和比作业大就可以满足作业对主存的需求。对打印机和磁带机这两种独占设备采用静态分配法,即作业执行前必须获得所需资源,并且执行完才归还。

实验中作业的调度采用响应比高者优先算法。响应比为作业的等待时间和作业估计执行时间之比。首先计算出输入井中满足条件的作业的响应比,从中选择响应比最高的一个作业装入主存储器,分配资源。由于是模拟实验,可将作业控制块出队装入主存储器的工作用输出作业名模拟,同时修改系统的资源数量。

模拟实验时,可以首先假设系统的资源情况。假设系统资源只有主存64MB、磁带机4台、打印机2台,然后手工输入某个时刻输入井中的各个作业情况,最后进行作业调度,并将结果输出。

批处理系统中的作业调度模拟程序主要由创建作业队列的程序段(在主函数中)和作业调度函数组成。

4.实验步骤

操作系统根据允许并行工作的道数和一定的优先算法从系统中选取若干作业把它们装入主存储器,使它们有机会获得处理器运行,这项工作被称为“作业调度”。实现这部分功能的程序就是“作业调度程序”。

作业调度的实现主要有两个问题,一个是如何将系统中的作业组织起来;另一个是采用何种算法进行作业调度调度算法包括:先来先服务、短作业优先调度算法、优先权调度算法和高响应比调度算法。本次实验中采用的调度算法便是高响应比调度算法,这种方法的优先权计算方法为:优先权= 等待时间/ 估计执行运行时间。

开始时为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录与其相关的信息,例如作业名、作业所需资源、作业执行时间、作业进入系统的时间、作业在等待队列中的等待时间、作业信息存储器中的位置、指向下一个作业控制块的指针等信息。这个记录作业相关信息的数据块称为作业控制块(JCB),并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。一个作业全部信息进入系统后,就为其建立作业控制块,并挂入后备队列。当进行作业调度时,系统从后备队列中查找选择优先权最高的作业并将其调入内存。

由于实验中没有实际作业,作业控制块中的信息内容只使用了实验中需要的数据。作业控制块中首先应该包括作业名;其次是作业所需资源,根据需要,实验中只包括需要主存的大小(采用可移动的动态分区方式管理主存,作业大小就是需要主存的大小)、需要打印机的数量和需要磁带机的数量;采用响应比作业调度算法,为了计算响应比,还需要有作业的估计执行时间、作业在系统中的等待时间;另外,指向下一个作业控制块的指针必不可少。

实验中,作业控制块及队列的数据结构定义如下:

typedef struct jcb

{

char name[4]; / /作业名

int length; //作业长度,所需主存大小

int printer; //作业执行所需打印机的数量

int tape; //作业所需磁带机的数量

int runtime; //作业估计执行时间

int waittime; // 作业在系统中的等待时间

struct jcb *next; //指向下一个作业控制块的指针

}JCB ;//作业控制块类型定义

同时采用响应比高者优先调度算法,进行调度时必须计算出系统中的所有满足必要条件作业的响应比;从中选择响应比最高的一个作业装入主存储器分配资源,由于是实验,所以就用将作业的作业控制块出队,并输出作业的作业名代替装入主存储器,同时修改系统的资源数量;用同样方法选择第二个、第三个……直到不再有满足必要条件的作业。采用响应比高者优先算法的作业调度程序流程图如下图1中所示。

模拟程序中,首先设系统现有资源的数量,假设系统资源只有主存(memory)64MB(以KB为单位分配)、磁带机(tape)4个和打印机(printer)2台;然后,手工输入某个时刻系统中的各个作业情况;最后进行作业调度,并将结果输出。

int tape1=4; //磁带机有4台

int printer1=2; //打印机有2台

long memory=64;

在这次的实验中我同样采用sort算法来组织后备队列,即按照响应比从大到小的顺序将作业控制块放入一个单链表中,这样在调入市只要选择第一个使用资源量满足实现给出的资源量的作业并将其调入内存,即显示改作业即可。与进程调度相似实验开始时在创建后备队列时同样依据响应比由高到低的顺序进行创

建,算法如下:

void Creat(jcb *head)

{

head->next=NULL;

int a,b,c,d,e;

for(int i=0;i<5;i++)

{

jcb *p=new jcb;

jcb *q=head->next;

cout<<"--------------------------------------------------------"<

cout<<"-----现在请你输入作业P"<

//(----作业长度、需打印机的数量、需磁带机的数量、执行时间、等待时间-----)

cin>>a>>b>>c>>d>>e;

p->name=i+1;

p->length=a;

p->printer=b; p->tape=c; p->runtime=d; p->waittime=e; p->xiyibi=e/d; if((q==NULL)||(p->xiyibi>q->xiyibi)) { p->next=head->next; head->next=p; continue; } while((p->xiyibinext->xiyibi)&&(q->next!=NULL)) { q=q->next; } p->next=q->next; q->next=p; } cout<<"队列创建完毕"<

队首

void sort(jcb *head) {

if(head->next->runtime==0) { head->next=head->next->next; return; }

jcb *p=head->next; head->next=p->next; jcb *q=head->next; if((q==NULL)||(p->xiyibi>q->xiyibi)) { p->next=head->next; head->next=p; return; } while((q->next!=NULL)&&(p->xiyibi<=q->next->xiyibi)) { q=q->next; } p->next=q->next; q->next=p; }

图1采用响应比高者优先算法的作业调度程序流程图

待就绪队列创建完毕以后便可开始作业的调度,此处采用子程序call 来完成这一功能,代码段如下: void Call(jcb *head) {

jcb *p=head->next;

//如果(p->tape>tape1)或者(p->printer>printer1)或者(p->length>=64)即当作业申请的资源量超出系统能够提供的资源总量时系统不将作业调入内存,在此处表现为将其从后备队列中删除掉

while((p->tape>tape1)||(p->printer>printer1)||(p->length>=64)) {

head->next=p->next; p=p->next;

}

//如果作业满足系统资源量的约束条件,那么就调用后背队列中的第一个任务,调入完毕后将其等待时间变为0 ,要求执行时间变为o。同时也要将后备队列中其余的作业的等待时间加上p的执行时间。待这些操作完成后,在将就绪队列重新整理,调用sort函数。

cout<<"------调用任务P"<name<

p->runtime=0;

p->waittime=0;

while(p->next!=NULL)

{

p->next->waittime+=head->next->runtime;

p=p->next ;

}

}

5.实验结果

手动输入为各个作业设置的初值为:

p1->length=12,p1->printer=2,p1->tape=3,p1->runtime=4,p1->waittme=5;

p2->length=23,p2->printer=1,p2->tape=1,p2->runtime=1,p2->waittme=2;

p3->length=34,p3->printer=2,p3->tape=2,p3->runtime=2,p3->waittme=3;

p4->length=11,p4->printer=2,p4->tape=3,p4->runtime=1,p4->waittme=3;

p5->length=56,p5->printer=3,p5->tape=4,p5->runtime=5,p5->waittme=6;

根据初始结果创建的后备队列如下图中所示:

队首标志

实验中各作业调入内存的先后顺序如下:

在调用个作业后为了模拟真实的作业调度,实验中也列出了调用个作业后后备队列中各作业的情况:

附:源程序代码

#include "stdlib.h"

#include

typedef struct jcb

{

int name; /*作业名*/

int length; /*作业长度,所需主存大小*/

int printer; /*作业执行所需打印机的数量*/

int tape; /*作业执行所需磁带机的数量*/

int runtime; /*作业估计的执行时间*/

int waittime; /*作业在输入井中的等待时间*/

double xiyibi;

struct jcb *next; /*指向下一个作业控制块的指针*/

}JCB; /*作业队列头指针定义*/

int tape1=4; int printer1=2; long memory=64;

void Creat(jcb *head)

{

head->next=NULL;

int a,b,c,d,e;

for(int i=0;i<5;i++)

{

jcb *p=new jcb;

jcb *q=head->next;

cout<<"-----现在请你输入作业P"<

//(作业长度、需打印机的数量、需磁带机的数量、执行时间、等待时间)

cin>>a>>b>>c>>d>>e;

p->name=i+1;

p->length=a; p->printer=b; p->tape=c;p->runtime=d;

p->waittime=e; p->xiyibi=e/d;

if((q==NULL)||(p->xiyibi>q->xiyibi))

{

p->next=head->next;

head->next=p; continue;

}

while((p->xiyibinext->xiyibi)&&(q->next!=NULL))

{ q=q->next; }

p->next=q->next;

q->next=p;

}

}

void sort(jcb *head)

{

if(head->next->runtime==0)

{

head->next=head->next->next;

return;

}

jcb *p=head->next;

head->next=p->next;

jcb *q=head->next;

if((q==NULL)||(p->xiyibi>q->xiyibi))

{

p->next=head->next;

head->next=p;

return;

}

while((q->next!=NULL)&&(p->xiyibi<=q->next->xiyibi))

{

q=q->next;

}

p->next=q->next;

q->next=p;

}

void Call(jcb *head)

{

jcb *p=head->next;

while((p->tape>tape1)||(p->printer>printer1)||(p->length>=64))

{

head->next=p->next;

p=p->next;

}

cout<<"调用任务P"<name<<",作业p"<name<<"执行"<runtime<<"秒的时间"<

p->runtime=0;

p->waittime=0;

while(p->next!=NULL)

{

p->next->waittime+=head->next->runtime;

p=p->next ;

}

}

void show(jcb *head)

{

jcb *p=head->next;

while(p!=NULL)

{

cout<<" p"<name <<" "<length <<" "<printer <<" "<tape <<" "<runtime<<" "<waittime<

cout<<"---------------------------------------------------------------------- "<

p=p->next;

}

}

void main()

{

jcb *head=new jcb;

Creat(head);

while(head->next!=NULL)

{

Call(head);

sort(head);

show(head);

}

}

批处理命令格式

批处理命令格式.txt人永远不知道谁哪次不经意的跟你说了再见之后就真的再也不见了。一分钟有多长?这要看你是蹲在厕所里面,还是等在厕所外面……echo 表示显示此命令后的字符 echo off 表示在此语句后所有运行的命令都不显示命令行本身 @与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。 call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续 rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。 例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文件的内容。 特殊命令 if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批

最全批处理命令学习资料【完美版】

一:批处理文件 批处理文件是扩展名为·bat或·cmd的文本文件,包含一条或多条命令,由DOS或Windows系统内嵌的命令解释器来解释运行。 批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。 二:常用命令: 1.echo 和 @: @ #关闭单行回显 echo off #从下一行开始关闭回显 @echooff #从本行开始关闭回显,一般批处理第一行都是这个echo on #从下一行开始打开回显 echo #显示当前是echo off 状态还是 echo on 状态echo. #输出一个”回车换行”,空白行 #(同echo, echo; echo+ echo[ echo]echo /echo") 2.errorlevel echo???%errorlevel% 每个命令运行结束,可以用这个命令行格式查看返回码 默认值为0,一般命令执行出错会设 errorlevel 为1 目录操作类命令: 3.dir?显示磁盘目录命令 dir #显示当前目录中的文件和子目录 dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 dirc:/a:d #显示 C 盘当前目录中的目录 dir c: /a:-d #显示 C 盘根目录中的文件 dir c:" /b/p #/b只显示文件名,/p分页显示 dir c:" /b/p#/w不显示详细信息 dir *.exe /s #显示当前目录和子目录里所有的.exe文件 4.以树形显示当前路径文件夹结构 tree /f #显示每个文件夹中文件的名字。 5.md 建立子目录 md d:"a"b"c#如果 d:"a 不存在,将会自动创建中级目录 #如果命令扩展名被停用,则需要键入mkdir "a" b"c 6.cd?改变当前目录(进入) cd \#进入根目录 cd#显示当前目录 cd /d d:\sdk #可以同时更改盘符和目录 cd .. #返回上一级目录

DOS批处理命令大全

写批处理 扩展名是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命令,甚至可以使用不具有可执行特性的普通数据性文件,这缘于wind ows系统这个新型解释平台的涉入,使得批处理的应用越来越"边缘化"。所以我们讨论的批处理应该限定在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.360docs.net/doc/7016711944.html,中的内部命令(根据内存的环境随时进驻内存),以com为扩

Windows批处理大全

Windows 批处理大全(附各种实例) 批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。下面就开始我们批处理学习之旅吧。 一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。 语法 echo [{on|off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。 2.@ 命令 表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。 Sample:@echo off @echo Now initializing the program,please wait a minite... @format X: /q/u/autoset (format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。) 3.Goto 命令 指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。 语法:goto label (label是参数,指定所要转向的批处理程序中的行。) Sample: if {%1}=={} goto nop arm s if {%2}=={} goto nop arm s(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。) @Rem check parameters if null show usage :nop arm s echo Usage: monitor.bat ServerIP PortNumber goto end 标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。最好有一些说明这样你别人看起来才会理解你的意图啊。 4.Rem 命令 注释命令,在C语言中相当与/*--------*/,它并不会被执行,只是起一个注释的

最全批处理命令学习资料【完美版】

一:批处理文件 批处理文件是扩展名为·bat或·cmd的文本文件,包含一条或多条命令,由DOS或Windows系统内嵌的命令解释器来解释运行。 批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。 二:常用命令: 1.echo 和@: @ #关闭单行回显 echo off #从下一行开始关闭回显 @echo off #从本行开始关闭回显,一般批处理第一行都是这个 echo on #从下一行开始打开回显 echo #显示当前是echo off 状态还是echo on 状态 echo. #输出一个”回车换行”,空白行 #(同echo, echo; echo+ echo[ echo] echo/ echo") 2.errorlevel echo %errorlevel% 每个命令运行结束,可以用这个命令行格式查看返回码 默认值为0,一般命令执行出错会设errorlevel 为1 目录操作类命令: 3.dir 显示磁盘目录命令 dir #显示当前目录中的文件和子目录 dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件

dir c: /a:d #显示C 盘当前目录中的目录 dir c: /a:-d #显示C 盘根目录中的文件 dir c:" /b/p #/b只显示文件名,/p分页显示 dir c:" /b/p #/w不显示详细信息 dir *.exe /s #显示当前目录和子目录里所有的.exe文件 4.以树形显示当前路径文件夹结构 tree /f #显示每个文件夹中文件的名字。 5.md 建立子目录 md d:"a"b"c #如果d:"a 不存在,将会自动创建中级目录 #如果命令扩展名被停用,则需要键入mkdir "a"b"c 6.cd 改变当前目录(进入) cd \ #进入根目录 cd #显示当前目录 cd /d d:\sdk #可以同时更改盘符和目录 cd .. #返回上一级目录 7.rd 删除子目录命令 rd abc #删除当前目录里的abc 子目录,要求为空目录rd /s/q d:\temp #删除d:"temp 文件夹及其子文件夹和文件/q安静模式 磁盘操作类命令: 8.format 磁盘格式化命令 9.chkdsk 检查磁盘当前状态命令

实用批处理(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、更正了所有的错别字,适当排版,增加条理性。

windows批处理文件(.bat&)

bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由 外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是 由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语言。 所以从某个程度分析,batch, unix shell, awk, basic, perl 等脚本语言都 是一样的,只不过应用的范围和解释的平台各有不同而已。甚至有些应用程序 仍然沿用批处理这一称呼,而其内容和扩展名与dos的批处理却又完全不同。 =================================== 首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部 分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批 处理文件。 ==== 注 =================== 批处理文件中完全可以使用非dos命令,甚至可以使用不具有可执行特性的普 通数据性文件,这缘于windows系统这个新型解释平台的涉入,使得批处理的 应用越来越"边缘化"。所以我们讨论的批处理应该限定在dos环境或者命令行 环境中,否则很多观念和设定都需要做比较大的变动。 ======================== 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分 有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括 内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 ==== 注 ================== 批处理文件(batch file)也可以称之为批处理程序(batch program),这一点与编译型语言有所不同,就c语言来说,扩展名为c或者cpp的文件可以称之为 c语言文件或者c语言源代码,但只有编译连接后的exe文件才可以称之为c 语言程序。因为批处理文件本身既具有文本的可读性,又具有程序的可执行性,这些称谓的界限是比较模糊的。 =========================== 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所 在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个

简单快速重命名同类文件批处理基础

有图有真相(完整图解)●在所要重命名的文件夹中建立一个文本文档 ●输入“dir/a/b>”(引号不用,可直接复制)保存将文本文件的后缀名改为bat:即将文本文件命中的txt替换为bat,注意不能将“.”删掉,然后会出现 ,就成功了。 ●双击上述文件,会在文件夹中出现,打开后将文件夹中文件的名字选中复制 ●新建Excel文件,将复制的文件名粘贴到A列 ●在B列写入重命名后的文件名,如下图

●在C列输入【"ren "&A1&" "&B1&RIGHTB(A1,4)】(可直接复制,注意:4代表所要命名文件的后缀名位数加上1;ren的后面和中间的双引号里有空格;由于文字格式的不同而导致复制粘贴不成功,则按上述括弧中在Excel的C1输入如图 ●将鼠标移动到C1列的右下角,鼠标指针变为十字形,如 图按住鼠标不动往下拉,就可以完成所有的命令,如图

●将清空(Crtl+ABackspace),在复制C列到,保存文本。 ●重命名,将后缀名改为bat,如第二个步骤 ●双击,你将会看到 ---- 为什么001没有改变呢 虽然是批量重命名,但是B列中的名字必须符合文件的命名规则: 1.文件名长度规定

任何一个文件名最多可使用255个英文字符,如果使用中文字符则不能超过127个汉字。 2.可用字符规定 原则上可以利用键盘输入的英文字母、符号、空格、中文等均可以作为合法字符,但由于以下字符由系统保留它用,因此不能用在文件命名中: : / \ * “ < > | 3.经过实验,批处理重命名中B列不能出现空格,否则将不能重命名。 编者结语: 如果你喜欢计算机,如果你喜欢简单,如果你希望真正了解计算机更实用的方面,就随时关注shichen501,笔者将陆续推出各种计算机应用说明,敬请期待!

目前为止最全的批处理教程

目录 第一章 批处理基础 第一节 常用批处理内部命令简介 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

批处理常用命令及用法大全_-__打印

注:如果对某一命令还不是很熟悉,可以在命令行窗口下输入:命令名/?的方式来获得帮助。 1 echo 和 @回显控制命令 @ #关闭单行回显 echo off #从下一行开始关闭回显 @echo off #从本行开始关闭回显。一般批处理第一行都是这个 echo on #从下一行开始打开回显 echo #显示当前是 echo off 状态还是 echo on 状态echo. #输出一个"回车换行",一般就是指空白行 echo hello world #输出hello world "关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果批处理开始和结束时,系统都会自动打开回显 2 errorlevel程序返回码 echo %errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码用于判断刚才的命令是否执行成功默认值为0,一般命令执行出错会设 errorlevel 为1 3 dir显示目录中的文件和子目录列表 dir #显示当前目录中的文件和子目录 dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 dir c: /a:d #显示 C 盘当前目录中的目录 dir c:\ /a:-d #显示 C 盘根目录中的文件 dir d:\mp3 /b/p #逐屏显示 d:\mp3 目录里的文件,只显示文件名,不显示时间和大小 dir *.exe /s显示当前目录和子目录里所有的.exe文件其中 * 是通配符,代表所有的文件名,还一个通配符 ? 代表一个任意字母或汉字如 c*.* 代表以 c 开头的所有文件?.exe 代表所有文件名是一个字母的.exe文件如果指定的目录或文件不存在,将返回 errorlevel 为1;每个文件夹的 dir 输出都会有2个子目录 . 和 ... 代表当前目录.. 代表当前目录的上级目录 dir . #显示当前目录中的文件和子目录 dir .. #显示当前目录的上级目录中的文件和子目录 其它参数可参考 dir /? 4 cd更改当前目录 cd mp3 #进入当前目录中的mp3 目录 cd .. #进入当前目录中的上级目录 cd\ #进入根目录 cd #显示当前目录 cd /d d:\mp3 #可以同时更改盘符和目录 cd "Documents and Settings"\All users文件名带空格,路径前需要加上引号!!如果更改到的目录不存在,则出错返回 errorlevel=1 5 md创建目录 md abc #在当前目录里建立子目录 abc md d:\a\b\c #如果 d:\a 不存在,将会自动创建 6 rd删除目录 rd abc #删除当前目录里的 abc 子目录,要求为空目录 rd /s/q d:\temp #删除 d:\temp 文件夹及其子文件夹和文件,不需要按 Y 确认 7 del删除文件 del d:\test.txt #删除指定文件,不能是隐藏、系统、只读文件 del *.*删除当前目录里的所有文件,不包括隐藏、系统、只读文件,要求按 Y 确认 del /q/a/f d:\temp\*.*删除 d:\temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录 del /q/a/f/s d:\temp\*.*删除 d:\temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录 8 ren文件重命名 ren 1.txt 2.bak #把 1.txt 更名为 2.bak ren *.txt *.ini #把当前目录里所有.txt文件改成.ini文件 ren d:\temp tmp #支持对文件夹的重命名 9 cls清屏 10 type显示文件内容 type c:\boot.ini #显示指定文件的内容,程序文件一般会显示乱码 type *.txt #显示当前目录里所有.txt文件的内容 11 copy拷贝文件 XCOPY复制组文件 COPY复制文件 拷贝目录和文件——xcopy 在拷贝单个文件时,可以使用copy命令完成,但当我们要成批拷贝文件,甚至连同子目录一起拷贝时,就要用到xcopy。 copy c:\test.txt d:\复制 c:\test.txt 文件到 d:\ copy c:\test.txt d:\test.bak复制 c:\test.txt 文件到 d:\ ,并重命名为 test.bak copy c:\*.*复制 c:\ 所有文件到当前目录,不包括隐藏文件和系统文件不指定目标路径,则默认目标路径为当前目录 copy con test.txt从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件con代表屏幕,prn 代表打印机,nul代表空设备 copy 1.txt + 2.txt 3.txt合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件如果不指定 3.txt ,则保存到 1.txt 1

批处理命令大全(合集命令)

1 echo 和@ 回显控制命令 @ #关闭单行回显 echo off #从下一行开始关闭回显 @echo off #从本行开始关闭回显。一般批处理第一行都是这个 echo on #从下一行开始打开回显 echo #显示当前是echo off 状态还是echo on 状态 echo. #输出一个"回车换行",一般就是指空白行 echo hello world #输出hello world "关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果 批处理开始和结束时,系统都会自动打开回显 2 errorlevel 程序返回码 echo %errorlevel% 每个命令运行结束,可以用这个命令行格式查看返回码 用于判断刚才的命令是否执行成功 默认值为0,一般命令执行出错会设errorlevel 为1 3 dir 显示目录中的文件和子目录列表 dir #显示当前目录中的文件和子目录 dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 dir c: /a:d #显示C 盘当前目录中的目录 dir c:\ /a:-d #显示C 盘根目录中的文件 dir d:\mp3 /b/p #逐屏显示d:\mp3 目录里的文件,只显示文件名,不显示时间和大小dir *.exe /s 显示当前目录和子目录里所有的.exe文件 其中* 是通配符,代表所有的文件名,还一个通配符? 代表一个任意字母或汉字 如c*.* 代表以 c 开头的所有文件 ?.exe 代表所有文件名是一个字母的.exe文件 如果指定的目录或文件不存在,将返回errorlevel 为1 每个文件夹的dir 输出都会有2个子目录. 和.. . 代表当前目录 .. 代表当前目录的上级目录 dir . #显示当前目录中的文件和子目录 dir .. #显示当前目录的上级目录中的文件和子目录 其它参数可参考dir /? 4 cd 更改当前目录 cd mp3 #进入当前目录中的mp3 目录 cd .. #进入当前目录中的上级目录 cd\ #进入根目录

批处理常用命令及用法大全

批处理常用命令及用法大全 说明:本文来自网络,由youxi01整理,由liqiochi修改完善。 阅读本文需要一定的dos基础概念,象:盘符、文件、目录(文件夹)、子目录、根目录、当前目录每个命令的完整说明请加/? 参数参考微软的帮助文档可以看到,在/? 帮助里,"命令扩展名"一词会经常出现"命令扩展名"是指相对于win98的dos版本而言,每个命令新增的功能 命令测试环境win2000proSP4win98的命令功能太少,就不作研究了 注:如果对某一命令还不是很熟悉,可以在命令行窗口下输入:命令名/?的方式来获得帮助。 例如:对dir命令的应用不熟悉,可以在命令行窗口下输入:dir /? 参数只列举常用参数。 注:errorlevel,msd,undelete在win7下不存在。 目录 1.echo 和@回显控制命令 (3) 2.shutdown 关机 (3) 3.dir显示目录中的文件和子目录列表 (4) 4.cd更改当前目录 (4) 5.md创建目录 (5) 6.rd删除目录 (5) 7.del删除文件 (5) 8.ren文件和文件夹重命名 (6) 9.cls清屏 (6) 10.type显示文件内容 (6) 11.copy拷贝文件(只能复制文件) (6) 12.title设置cmd窗口的标题 (7) 13.ver显示系统版本 (7) https://www.360docs.net/doc/7016711944.html,bel 和vol设置卷标 (7) 15.pause暂停命令 (7) 16.rem 和::注释命令 (7) 17.date 和time日期和时间 (8) 18.goto 和:跳转命令 (8) 19.find (外部命令)查找命令 (8) 20.more (外部命令)逐屏显示 (9) 21.tree显示目录结构 (9) 22.&顺序执行多条命令,而不管命令是否执行成功 (9) 23.&&顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令 . 9 24.||顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令 (9) 25.|管道命令,前一个命令的执行结果输出到后一个命令 (10)

BAT(批处理)文件编写详细手册

BAT(批处理)文件编写详细手册 一、批处理文件简介 首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。 其次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句 (for)来循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的 DOS命令(包括内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。 第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch 目录(例如C:/BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:/batch,你就可以在任意位置运行所有你编写的批处理程序。 简单的说,批处理的作用就是自动的连续执行多条命令。 二、批处理中常用命令: 1.echo命令:表示显示此命令后的字符。字符不需要使用引号。其中,%和^两个字 符不能显示。 2.Echo off命令:表示在此语句后所有运行的命令都不显示命令行本身。即关闭echo 回显功能。可以使用echo on打开。 3.@命令:它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能 影响当前行)。 4.call命令:调用另一个批处理文件(如果不用call而直接调用别的批处理文件, 那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。 5.pause命令:运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续。如果不想显示以上英文提示信息, 可以这样写:pause>null 6.rem命令:表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考 用的(相当于程序中的注释)。 7.::命令:与rem命令等效。 例1:用edit编辑a.bat文件,输入下列内容后存盘为c:/a.bat,执行该批处理 文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。 批处理文件的内容为: 命令注释: @echo off //不显示后续命令行及当前命令行

windows批处理命令详解及脚本实例

批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT。第一部分:批处理内部命令 1、REM REM 是个注释命令一般是用来给程序加上注解的,该命令后的内容在程序执行的时候将不会被显示和执行。例: REM 你现在看到的就是注解,这一句将不会被执行。在以后的例子中解释的内容都REM 会放在REM后面。请大家注意。 2、ECHO ECHO 是一个回显命令主要参数有OFF和ON,一般用ECHO message来显示一个特定的消息。例: Echo off Rem 以上代表关闭回显即不显示所执行的命令 Echo 这个就是消息。 Rem 以上代表显示"这就是消息"这列字符 执行结果: C:\>ECHO.BAT 这个就是消息。 3、GOTO GOTO 即为跳转的意思。在批处理中允许以":XXX"来构建一个标号然后用GOTO :标号直接来执行标号后的命令。例 :LABEL REM 上面就是名为LABEL的标号。 DIR C:\ DIR D:\ GOTO LABEL REM 以上程序跳转标号LABEL处继续执行。 4、CALL CALL 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续

执行原来的批处理。例: 批处理2.BAT内容如下: ECHO 这就是2的内容 批处理1.BAT内容如下: ECHO 这是1的内容 CALL 2.BAT ECHO 1和2的内容全部显示完成 执行结果如下: C:\>1.BAT 这是1的内容 这就是2的内容 1和2的内容全部显示完成 5、PAUSE PAUSE 停止系统命令的执行并显示下面的内容。例: C:\> PAUSE 请按任意键继续. . . 6、IF IF 条件判断语句,语法格式如下: IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command 说明: [NOT] 将返回的结果取反值即"如果没有"的意思。 ERRORLEVEL 是命令执行完成后返回的退出值 Number 退出值的数字取值范围0~255。判断时值的排列顺序应该又大到小。返回的值大于或等于指定的值时条件成立。 string1==string2 string1和string2都为字符的数据,英文字符的大小写将看做不同,这个条件中的等于号必须是2个(绝对相等),条件想等后即执行后面的command EXIST filename 为文件或目录存在的意思。 IF ERRORLEVEL这条语句必须放在某一个命令后面。执行命令后由IF ERRORLEVEL来

bat常用命令及用法大全

批处理常用命令及用法大全 阅读本文需要一定的dos基础概念,象:盘符、文件、目录(文件夹)、子目录、根目录、当前目录每个命令的完整说明请加 /? 参数参考微软的帮助文档可以看到,在 /? 帮助里,"命令扩展名"一词 会经常出现"命令扩 展名"是指相对于win98的dos版本而言,每个命令新增的功能 命令测试环境win2000proSP4win98的命令功能太少,就不作研究了 注:如果对某一命令还不是很熟悉,可以在命令行窗口下输入:命令名/?的方式来获得帮助。 例如:对dir命令的应用不熟悉,可以在命令行窗口下输入: dir /? 1 echo 和 @回显控制命令 @ #关闭单行回显 echo off #从下一行开始关闭回显 @echo off #从本行开始关闭回显。一般批处理第一行都是这个 echo on #从下一行开始打开回显 echo #显示当前是 echo off 状态还是 echo on 状态 echo. #输出一个"回车换行",一般就是指空白行 echo hello world #输出hello world "关闭回显"是指运行批处理文件时,不显示文件里的每条命令,只显示运行结果批处理开始和结束时, 系统都会自动打开 回显 2 errorlevel程序返回码 echo %errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码用于判断刚才的命令是否 执行成功默认值为0, 一般命令执行出错会设 errorlevel 为1 3 dir显示目录中的文件和子目录列表 dir #显示当前目录中的文件和子目录 dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件 dir c: /a:d #显示 C 盘当前目录中的目录 dir c:\ /a:-d #显示 C 盘根目录中的文件dir d:\mp3 /b/p #逐屏显示 d:\mp3 目录里 的文件,只显示文件 名,不显示时间和大小 dir *.exe /s显示当前目录和子目录里所有的.exe文件其中 * 是通配符,代表所有的文件名,还一 个通配符 ? 代表一个

DOS批处理命令大全

COMMAND DOS批处理命令大全 帮助文件 WING 12

目录 MOVE /? (3) COPY /? (3) DEL /? (4) AT /? (5) TIME [/T | time] (5) DATE [/T | date] (6) GOTO /? (6) CALL /? (6) FOR /? (8) SET /? (11) REG Operation /? (15) dir /? (23) md /? (24) chdir /? (24) C:\>ren /? (25) diskcopy /? (26) xcopy /? (26) path /? (30) chkdsk /? (30) format /? (31)

MOVE /? 移动文件并重命名文件和目录。 要移动至少一个文件: MOVE [/Y | /-Y] [drive:][path]filename1[,...] destination 要重命名一个目录: MOVE [/Y | /-Y] [drive:][path]dirname1 dirname2 [drive:][path]filename1 指定您想移动的文件位置和名称。 destination 指定文件的新位置。目标可包含一个驱动器号 和冒号、一个目录名或组合。如果只移动一个文件 并在移动时将其重命名,您还可以包括文件名。 [drive:][path]dirname1 指定要重命名的目录。 dirname2 指定目录的新名称。 /Y 取消确认改写一个现有目标文件的提示。 /-Y 对确认改写一个现有目标文件发出提示。 命令行开关 /Y 可以出现在 COPYCMD 环境变量中。这可以用命令行上 的 /-Y 替代。默认值是,除非 MOVE 命令是从一个批脚本内 执行的,改写时都发出提示。 COPY /? 将一份或多份文件复制到另一个位置。 COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] source [/A | /B] [+ source [/A | /B] [+ ...]] [destination [/A | /B]] source 指定要复制的文件。 /A 表示一个 ASCII 文本文件。 /B 表示一个二进位文件。 /D 允许解密要创建的目标文件 destination 为新文件指定目录和/或文件名。 /V 验证新文件写入是否正确。 /N 复制带有非 8dot3 名称的文件时,

批处理命令For循环命令详解

分类:2010-06-11 13:0416793人阅读(0) 批处理for命令详解 FOR这条命令基本上都被用来处理文本,但还有其他一些好用的功能! 看看他的基本格式(这里我引用的是批处理中的格式,直接在命令行只需要一个%号) FOR 参数%%变量名IN (相关文件或命令) DO 执行的命令 参数:FOR有4个参数/d /l /r /f 他们的作用我在下面用例子解释 %%变量名:这个变量名可以是小写a-z或者大写A-Z,他们区分大小写,FOR会把每个读取到的值给他; IN:命令的格式,照写就是了; (相关文件或命令) :FOR要把什么东西读取然后赋值给变量,看下面的例子 do:命令的格式,照写就是了! 执行的命令:对每个变量的值要执行什么操作就写在这. 可以在CMD输入for /看系统提供的帮助!对照一下 FOR %%variable IN (set) DO command [command-parameters] %%variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 现在开始讲每个参数的意思 /d 仅为目录 如果Set (也就是我上面写的"相关文件或命令") 包含通配符(* 和),将对与Set 相匹配的每个目 录(而不是指定目录中的文件组)执行指定的Command。 系统帮助的格式:FOR /D %%variable IN (set) DO command 他主要用于目录搜索,不会搜索文件,看这样的例子 @echo off for /d %%i in (*) do @echo %%i pause 把他保存放在C盘根目录执行,就会把C盘目录下的全部目录名字打印出来,而文件名字一个也不显示!

相关文档
最新文档