WEB开发网
开发学院数据库MSSQL Server 批处理的经典应用 阅读

批处理的经典应用

 2007-11-11 06:28:22 来源:WEB开发网   
核心提示:作者:郁闷宝宝在日常的网吧管理中,一般是在WINDOWS界面下去完成操作的,批处理的经典应用,所以很多时候我们都要不断的点击“下一步”来完成一个程序的安装与升级,无形中加大了我们网管的工作量,我觉得DOS批处理就像一朵散发着幽幽香味的娇艳小花,虽然不起眼,或许你平常上网去查看资料已经知道了应用批处理能够在DOS下面轻松

作者:郁闷宝宝

在日常的网吧管理中,一般是在WINDOWS界面下去完成操作的,所以很多时候我们都要不断的点击“下一步”来完成一个程序的安装与升级,无形中加大了我们网管的工作量,或许你平常上网去查看资料已经知道了应用批处理能够在DOS下面轻松的完成本来需要几步或者几十步才能完成的任务,但你有没有想过通过批处理还能定时的执行一个程序的运行呢?

初识批处理:在使用批处理前我们一定要认识一下什么叫做批处理。批处理是在DOS1.0开发到最后时刻才诞生的,因为IBM需要一些方法不断测试生产出来的PC,所以希望能够有一种方式能够使电脑自动运行一批命令,而不需要人工的一次次输入,他们把这个意图告诉了微软,于是微软就通过建立批处理文件来满足了IBM。

在后来出现的DOS系统里面批处理的自动化被更好的体现出来了,DOS系统允许用户使用一种文本编辑将多条DOS命令按顺序以ASC Ⅱ文本写入一个扩展名为BAT(MS-DOS批处理)或CMD(WINDOWS NT命令脚本)的文件中,当我们需要使用的时候在提示符下键入文件名并回车,或在WINDOWS界面下双击该文件时系统就会调用COMMAND.COM或CMD.EXE由前向后的依此来自动执行这些命令。而这个命令的集合就是批处理。他是DOS下可执行文件的一种。一个完整的批处理是由至少一条可以被正确执行的DOS命令组成,由此可见,DOS命令是批处理的核心。

还有另外一种说法,把批处理称作“脚本”,或合起来称作“批处理脚本”,这也算是合理的。批处理和脚本都有一个共同点:都是利用一组命令正确执行来实现自身的价值,不同点在于,批处理全部是应用DOS命令,而脚本可以使用应用程序的指令;脚本的程序性强于批处理,但批处理程序结构比较简单,这也是我比较喜欢他的地方。

下面我将为大家介绍一个利用批处理来解决网吧上网记录自动备份,可能有部分命令的使用是比较复杂的,所以大家先不需要明白太多,在这篇文章后我将会写一系列关于批处理方面的文章,如果对这个在WINDOWS界面下不太起眼但总是能使我们工作从复杂变简单的DOS批处理有兴趣的话可以留意下。如果只想实现我下面所说的功能你只需要COPY下面的命令按着你的安装文件目录修改就能达到目的了。

自从网吧出现以来,公安方面就在网吧收费机上安装了任子行监控软件,要求网吧备份最少90天的上网记录,至少每个星期必须备份一次,而上网记录是隐藏的,必须要在DOS下面用DIR /A命令才能找得出来,这在无形中加大了我们网管的工作量,还有不及时备份如果出现了问题的话公安给予我们的就两个字“罚款”。所以这也是必须的。但平常工作太忙的网管可能一下子会把这事给“忘记”了。所以有没有构想过让他自动备份呢?利用软件的话,在目前为至我还没发现那个软件具有这个功能,所以我想到了批处理,现在也在正常的工作中了。下面把方法公布希望能够给和我一样喜欢“偷懒”的网管们一个参考。(对命令行不熟悉的网管你只需要把我下面的命令路径修改按我说的方法去就能实现上网记录的自动备份了。批处理应用的方法我会在以后写出来的,希望多多支持,在这里要特别多谢黄页技术版主OKZHUO的大力支持)。

一:在服务器建立一个名为8888隐藏共享的文件夹,建议你的分区是NTFS格式的。我这里就以我的为例子做个示范,(如果不会建立的话请查看我的文章<教你打造安全的网吧系统>)。新建立一个嫡属GUEST用户huang199的把Everyone用户删除,关于权限的设置请参考<WINDOWS权限解析>。(见图一,图二)

批处理的经典应用(图一)

图一

批处理的经典应用(图二)

图二

因为公安上网记录备份一般是备份在服务器上的,所以添加本机的超级用户和刚建立的huang199。(这个用户建议设置密码我设置的密码在这里是8888)。

服务器共享文件夹完成后就到安装了公安监控系统的机上了,在控制面板计划任务里面建立一个新的计划,如果计划任务无法运行请在开始运行输入services.msc进入服务里面把task scheduler(允许程序在指定时间运行)设置为自动,设置方面请参看图三,图四。

批处理的经典应用(图三)

图三

批处理的经典应用(图四)

图四

在图三中我们可以看到他指定运行的程序是在E:\KK.CMD(当然你也可以设置为KK.BAT,效果是一样的),在图四中我们看到是每一周星期一上午9点运行这个批处理。

二:批处理的编写

任子行上网数据备份一般有两种文件类型,主要的上网备份基本是保留在一个隐藏文件夹里面,我们可以通过在他的安装盘利用DIR/A命令查看到,我想这些都不需要我多说了,通常做备份的网管应该都知道。我的任子行是安装在D盘的。所以请看下面批处理:

@echo off

net use f: \\stdy\8888$“8888” /user:huang199 >nul

for /r d:\$7479043214639608$ %%i in (*。*) do if not exist z:\%%~nxi copy d:\$7479043214639608$\%%~nxi f:\%%~nxi >nul

for /R d:\"Program Files110\rzx\Net110\RLog" %%a in (*.*) do if not exist f:\%%~nxa copy d:\"Program Files110\rzx\Net110\RLog\%%~nxa" f:\%%~nxa >nul

for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do del /q/f f:\%%a%%b%%cpart。0。log >nul

for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do del /q/f f:\u%%a%%b%%c。rhg >nul

上面就是应用于自动备份公安上网记录的批处理文件了,下面我来简单的解释下每条命令。

第一句: @echo off net use f: \\stdy\8888$ "8888" /user:huang199 >nul不显示命令,把服务器的8888隐藏文件夹映射为我安装监控系统的F盘,后面是指定了登陆用户名和密码。 映射过来后方便下面的批文件编写哦。

第二句 for /r d:\$7479043214639608$ %%i in (*。*) do if not exist z:\%%~nxi copy d:\$7479043214639608$\%% ~nxi f:\%%~nxi >nul 这里利用了一个变量,大概的意思就是如果服务器上8888文件不存在d:\$7479043214639608$里面的文件的话就把$7479043214639608$里面的文件COPY到8888$这个文件夹中(也几是F盘)。提示一下这里有个参数~nx,因为原始取得%%i结果是包括盘符、路径、文件名、后缀名一起的格式,所以用参数~nx后就可以把%%i分离成只有文件名及后缀名的格式,这样才方便操作。具体其他参数你都可以输入for /?参考。 第三句for /R d:\"Program Files110"\rzx\Net110\RLog %%a in (*。*) do if not exist f:\%%~nxa copy d:\"Program  Files110"\rzx\Net110\RLog\%%~nxa f:\%%~nxa >nul 这里利用的原理和第二句差不多,因为公安数据备份是有两个文件夹的。所以要写这两条。%%这命令在DOS下面只需要%就可以了。但在批处理中就必须%%才能运行。还有因为在DOS下面一般只是认8位所以d:\"Program Files110"\rzx\Net110\RLog这里就需要用"" 符号来盖上。 第四和第五句基本应用差不多我下面就以第四句做为范例讲述。 for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do del /q/f f:\%%a%%b%%cpart。0。log >nul 这句话是for语句的典型运用,这句话执行时首先执行date /t,然后得到当天的内容(比如2005-07-13 星期三),"delims=- "的意思就是以"-及空格"为分割符,把"2005-07-13 星期三"分为"2005 07 13 星期三","tokens=1,2,3"就是把delims分割后得到的内容取1,2,3个字符,也就是"2005 07 13",大家可能不理解为什么前面只有一个%%a的变量,后面却有%%a%%b%%c三个变量?其实%%a是在 for 语句中直接指定得到的,而%%b和%%c是通过tokens= 选项专门得到的。因为要保存的文件的文件名有一定的规律,也就是文件名前面是日期变形得到的,而后面确实固定的"part。0。log",所以可以用%%a%%b%%cpart。0。log得到当天的文件的文件名,因为当天的上机记录日志是不完整的所以COPY后必须删除下次再COPY。(因为这条批处理运行的时候当天上网记录只有部分,所以为不完整的上网记录,我们没必要做当天的备份,这就是本BAT处理文件的经典所在了)

总的来说,这个批文件,主要用的是for语法,只要能熟练是掌握for这个语法命令,很多事情都可以轻松的完成的!关于for语句强大的功能,你可以在cmd中for /?来取得所有的帮助!

我们把上面的命令保存为KK。BAT或者是KK。CMD放在E盘中,再按前面的方法去做那么以后你就不需要每一个星期都要手动去备份一次上网记录了,当然文件的保存是随便你的。但你必须要在计划任务里面指定运行。

在WINDOWS大行其道的今天,我觉得DOS批处理就像一朵散发着幽幽香味的娇艳小花,虽然不起眼,但总是有让人难以抗拒的魅力,你们觉得呢?

Tags:批处理 经典 应用

编辑录入:coldstar [复制链接] [打 印]
赞助商链接