|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
您现在的位置: ChinaBeta.cn 中文IT资讯 >> 网盟学院 >> 技术文档 >> 网管技术正文
推荐网管技术让我穿过那道"墙"! 畅游网络应…推荐网管技术主动防御!瑞星杀毒2008抢先评…
推荐网管技术速度超快 Discuz! 6.0.0试用手…推荐网管技术奇虎举证:各杀毒软件均报CNNIC…
推荐网管技术Google Earth 4.2加入繁体中文…推荐网管技术专业防护!瑞星防火墙2008测试…
推荐网管技术挂载RAR文件 从认识到爱上WinM…推荐网管技术让你冲浪随心所欲 如何访问被封…
推荐网管技术轻装上阵!江民杀毒软件2008速…推荐网管技术VMware Fusion苹果版全程图解(…
推荐网管技术VMware Fusion苹果版全程图解(…推荐网管技术从菜鸟出发!征服高清详细评测全…
推荐网管技术VS2008和ASP.NET 3.5使用之初体…推荐网管技术[多图]Ubuntu 7.04 初体验
推荐网管技术东风吹战鼓擂 下载软件你选谁?推荐网管技术若隐若现 Windows XP DirectX …
推荐网管技术GPRS上网全攻略推荐网管技术主流杀毒软件Vista兼容性横评
推荐网管技术基于IRF的网络管理和业务管理解…推荐网管技术83个美丽的Wordpress主题
推荐网管技术软交换网络中的关键路由技术详…推荐网管技术不只是换肤?Windows Mobile 6 …
推荐网管技术css教程–十步学会用css建站(全…推荐网管技术巧妙设置路由 预防网络频繁掉线
推荐网管技术打造网络管理七大绝技推荐网管技术CorelDRAW X3 Service Pack 2 …
推荐网管技术重温经典:回归 Live Messenger…推荐网管技术Oracle数据库补丁分类、安装及…
Windows批处理的高级用法
Www.ChinaBeta.Cn 更新时间:2006-5-30 阅读次数:

【ChinaBeta.Cn 网盟学院】
嗯,标题好像很大,貌似会图文并茂的讲解很多用法似的……嘿嘿,其实没这么复杂,只是从一个例子出发,抛砖引玉,引出Windows批处理中并不为我们注意的高级用法。真的很有用哦!

有这么一个需求,要求做一个批处理文件,能够自动执行某个目录中的几个可执行文件,并且把它们的屏幕输出存入一个Log文件中。这里涉及到两个问题:
  1. 如何将屏幕输出转向到文件
  2. 如何确定Log的文件名
这两个问题都比较简单。第一个问题,通过“>”和“>>”可以轻松搞定,第二个问题似乎也不难,因为Windows支持环境变量,其中有一个“%DATE%”代表当前的日期,还有个“%TIME%”代表当时的时间,精确到百分之一秒。似乎这已经足够了吧,于是写出下面的脚本:
@echo off
SET LogFile=%DATE%%TIME%.log

app1.exe param1 param2  > %LogFile%
app2.exe param1 param2 >> %LogFile%
app3.exe param1 param2 >> %LogFile%
但是,很可惜,它无法按预期结果运行,它只会生成一个没有扩展名的文件,形如“2006-05-25”。想了想,哦,明白了,因为%DATE%打出来的东西是“2006-05-25 星期四”,遇到空格之后重定向的机制就开始起作用了,它以为这就是文件名全称了。
好了,那么我来加上引号,这下应该无敌了吧。
@echo off
SET LogFile="%DATE%%TIME%.log"

app1.exe param1 param2  > %LogFile%
app2.exe param1 param2 >> %LogFile%
app3.exe param1 param2 >> %LogFile%

但是,还是很可惜,Windows会报告“参数错误”。这又是怎么了呢?嗯,原来,Windows不允许文件名或目录名中含有“:”,而%TIME%的输出结果中恰好有两个“:”。这就无语了。
正在绝望之时,突然在命令行里鬼使神差的敲了一个“help set”,一切问题都明白了!以前都没有意识到啊,Windows批处理竟有如此强大的威力(当然,这还是没法和*nix比,不过已经比原来认识到的强多了)。
现在知道了,这个脚本可以这样写:
@echo off
SET LogFile=%DATE%%TIME%
REM 把 : 都替换成 -
SET LogFile=%LogFile::=-%
REM 把空格都替换成 -
SET LogFile=%LogFile =-%
REM 把 . 都替换成 -
SET LogFile=%LogFile.=-%

SET LogFile=%LogFile%.log

app1.exe param1 param2  > %LogFile%
app2.exe param1 param2 >> %LogFile%
app3.exe param1 param2 >> %LogFile%
至于具体的原理,大家可以在命令行里面敲help set就可以清楚看到了,Windows的文档做的就是好啊。
此外,还有help if和help call也很值得看,这些东西组合起来就构成了Windows批处理的高级用法。
Google

(责任编辑:海涛)

发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
热门文章 相关报道
普通网管技术 [软件应用]凤凰涅槃 驱动精灵2008归来 (01-03)最新网管技术
普通网管技术 [ASP|ASP.NET]为ASP.NET MVC框架添加AJAX支持 (01-02)最新网管技术
普通网管技术 [JSP|JAVA]从Java到Ruby:献给引路人的策略 (01-02)最新网管技术
普通网管技术 [PHP]PHP多文件上传实例 (01-02)最新网管技术
普通网管技术 [其它编程程序]QQ 静态截图完善实现之改造 CRec… (01-02)最新网管技术
普通网管技术 [其它编程程序]C++运算符重载转换运算符 (01-02)最新网管技术
普通网管技术 [其它编程程序]详细解析C++编写的ATM自动取款机… (01-02)最新网管技术
普通网管技术 [其它编程程序]C++中用vectors改进内存的再分配 (01-02)最新网管技术
普通网管技术 [其它编程程序]C++中的虚函数((((virtual funct… (01-02)最新网管技术
普通网管技术 [其它编程程序]C++中用函数模板实现和优化抽象操… (01-02)最新网管技术
  • [多图]译稿:重装Windows,只…

  • Apache+php+mysql在windows…

  • Cider-Intel Mac上直接运行…

  • 未打补丁的 Windows 有多脆…

  •   网友评论内容:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    I D *
    邮 箱
    主 页
    评 分 1分 2分 3分 4分 5分
    评 论

    关于我们  中国·国家信息产业部{粤ICP备06006652号}{陇ICP备06002562号}
    版权所有:『AK网盟基地』站长:Hahack | QQ:80505955 | E-mail:Hahack@Gmail.com
    Copyright (C) 2005-2007  akhack.org|chinabeta.cn All Rights Reserved