
这三个标准文件(也称为标准流)使用数字 0,1,2 进行标记。标准输入是文件0,标准输出是文件1,标准错误是文件2。下文中的文件流重定向会用到这三个数字。
批处理脚本经常需要把一些程序的日志输出的一个文本文件。 > *** 作符可以将标准输出或者错误重定向到一个文件。比如,列稿咐出当前目录下的文件信息,并存储到一个文本文件,可以这么 *** 作:
> *** 作符会覆盖目标文件的内容, >> *** 作符则是将内容追加至文件末。
默认情况下, >、 >> 是将标准输出重定向。 也可以在 *** 作符前加上 2 (注意没有空格) 来重定向标准错误。
也可以通过 >&运算符,将标准输出、错误相互转换。 例如,将标准输出转为异常来输出到 error.txt
通过几个例子看下, 将下边的内容保存为 test.cmd
使用 < 运算符可以将文件内容读入程序或者脚本。例如:
SomeFile.txt 的内容为:
result.txt 的内容为:
NUL 是一个虚拟的设备(文件),将 stdout 重定向到 NUL ,则会丢弃标准输出。例如:
屏幕上不会输出任何内容。在比如屏蔽掉错误输出,以上文中的 test.cmd 脚本为例,
只输出了 Hello, 错误的内容并没有输出。
如果要把一条命令的输出作为另外一条命令的输入,可以借助 | *** 作符来完成。例如将当前目录下的文件排序:
倒序:
有个技巧可以在命令提示符窗口中创建文本文件或者脚本,通过 CON 将命令提示符自己的输入重定向到一个文件。输入完成后需要按下 Ctrl + C , 发送一个结束符(EOF)。键悉纯
类似的技巧还有许多,比如新建一个空文本:
在DOS上还有一些其他的特殊设备可以重定向,但是大多数有点类似于LPT1(用于并行端口打印机)和COM1(用于串口设备,如调制解调器)。
写的不错批处理教程如何创建批处樱孝理文件?
将记事本打开,什么都不用写,然后选择文件,保存.保存类型选择所有拍迹文件,文件名则命名为*.bat这个*代表是文件名,你可以随便的起.保存好之后,看看你保存的地方,会出现一个白色窗口里有个黄色齿轮的图标.这东西就是你创建的批处理文件,双击他就可以运行,但他现在由于里面没有输入任何命令,所以他运行了并不会做任何事情.当我们想往这个*.bat文件中添加东西时,只要右键选择他,然后选择编辑,就可以打开记事本往内输入命令了.
批处理文件中的命令是什么?
批处理文件中的命令暂时先可以理解为dos命令,等稍后深入理解了以后再进行解释.批处理顾名思义就是一大堆东西堆在一起处理.换句话说就是往里面写一条条 dos命令,然后按顺序挨个执行,效果跟你在cmd里敲dos命令是一个效果.只不过用批处理写好之后,要运行只要双击下就可以运行了.而不用再一遍一遍的重复的往里面打命令.这就是批处理文件的好处.
除了运行dos命令之外,他还可以支持选择结构if,循环结构for,goto等,与c有点类似,但远没有c全面,并且脊贺稿编写语言十分不规范.
批处理语法:
先讲个最基本的东西 @echo off
echo 的意思是回旋,这里的意思就是回显,echo off意思就是关闭回显.前面的@表示echo off 这一行也不会回显你可以试着去掉@和整行去掉.@的另一个功能是在执行完批处理文件时自动恢复命令回显。如果第一句用的是ECHO OFF,那么在执行完批处理文件以后不会显示命令提示符。
举个例子:如果我们先创建一个1.bat文件,往里面输入:
dir 然后保存在c:\下.然后我们运行cmd,进入c盘根目录下,输入1.bat,则显示:
C:\>dir 驱动器 C 中的卷没有标签。 卷的序列号是 0C5D-07FF
C:\ 的目录
2004-08-25 00:45 <DIR>WINDOWS2004-08-25 00:51<DIR>Documents and Settings
.....
C:\
如果将1.bat内容修改成
echo off
dir
然后再在cmd里输入1.bat,则会显示
C:\>echo off
//因为运行了echo off,所以没有显示dir命令,直接显示了结果 驱动器 C 中的卷没有标签。 卷的序列号是 0C5D-07FF
C:\ 的目录
2004-08-25 00:45 <DIR>WINDOWS2004-08-25 00:51<DIR>Documents and Settings
.....
C:\
如果将1.bat文件修改成:
@echo offdir
则显示成:
C:\>1.bat
//与前面不同,并没有显示echo off,原因是加了@,所以不显示@后面的内容.又因为加
//了echo off,所以后面的命令不显示,直接显示结果 驱动器 C 中的卷没有标签。 卷的序列号是 0C5D-07FF
C:\ 的目录
2004-08-25 00:45 <DIR>WINDOWS2004-08-25 00:51<DIR>Documents and Settings
.....
C:\
通过以上的比较,相信你对echo off命令已经充分掌握了.
接下来讲的是call命令:
call 的意思为调用.假如有2个批处理文件a.bat和b.bat.如果我想运行a.bat的当中运行b.bat.如何运行呢?其实很简单,只要在a.bat文件中输入call命令,则可以在a.bat运行的当中,运行b.bat,等b.bat运行完之后,继续执行a.bat
call命令格式:
CALL [drive:][path]filename [batch-parameters]
batch-parameters 指定批处理程序所需的命令行信息。
举例如下,我们在c盘根目录下创建a.bat文件,内容为:
echo this is a.bat
call d:\b.bat
echo done
然后在d盘根目录下创建b.bat,内容为:
echo this is b.bat
保存后,打开cmd,进入c盘根目录,然后输入1.bat,显示如下:
C:\>a.bat
C:\>echo this is a.batthis is a.bat
C:\>call d:\b.bat
C:\>echo this is b.batthis is b.bat
C:\>echo donedone
三种方法1
你执行的命令可能有自动应答参数
比如
1
net use * /del
默认是要让你确认是否删除全部连接的
但你可以加上/y 这个自动应答参数就可以了
net use * /del /y
注意大部分命令的自动应答参数是/y 但不是全部,比如del的是/q
也有很多命令没有自动应答参数,这时候就需要一下两种方法了
2
echo y | net use * /del 可以达到和下条命令一样的效果
net use * /del /y
原理是利用echo回显命令把y这个字符通过 | 这个管道符号传递给net use * /del
楼猪请举一反三
3
利用翠玉仙姑的办法,先建立一个文本文件
在里边输入一个y字符
net use * /del <c:\xx.txt
可以和net use * /del /y
还有echo y | net use * /del
达到一样的效果
0000000000000000000000000000000000000000000000000
第三种办法最为烦琐但更为灵活功能更强大一迹搜陪点
可以实现二次应答或者三次应答四次应答....
比如我们要格式化某一个有卷标的分区
format d: /fs:fat32
键入以上命令的时候会提示你输入卷标
输入正确的话会提示你确认格式化吗?
这里就需要应答两次
这时就可以把要应答的内容先写到文漏宽本文件里边
每一次应答写一行
比如这里的话应该姿蠢这样写
===================
dpan
y
===================
我们假设d盘的卷标为dpan
format d:/fs:fat32 <c:\xx.txt
这样就可以顺利地自动格式化掉d盘了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)