📄 20060528003051.html
字号:
<td width="10" background="http://www.77169.com/Skin/2005/cnbbs_images/biao-4.gif"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-4.gif" width="10" height="2"></td>
<td><script language='javascript' src='http://www.77169.com/AD/200708/19.js'></script></td>
<td width="10" background="http://www.77169.com/Skin/2005/cnbbs_images/biao-5.gif"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-5.gif" width="10" height="3"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-6.gif" width="10" height="11"></td>
<td><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-8.gif" width="100%" height="11"></td>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-7.gif" width="10" height="11"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-9.gif" width="10" height="11"></td>
<td><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-3.gif" width="100%" height="11"></td>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-10.gif" width="10" height="11"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10" background="http://www.77169.com/Skin/2005/cnbbs_images/biao-4.gif"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-4.gif" width="10" height="2"></td>
<td><table cellSpacing=0 cellPadding=0 width="100%" border=0>
<tr>
<td height=10 vAlign=top class=main_tdbg_575><table width="100%" border="0">
<tr>
<td width="3%"><div align="center"><img src="http://www.77169.com/Skin/2005/digest.gif" width="14" height="11"></div></td>
<td width="66%" height="25"><strong>Windows批处理的高级用法</strong></td>
<td width="18%"> <font color=red>热</font> <font color='#009999'></font></td>
<td width="13%">【字体:<a href="javascript:fontZoomA();" class="top_UserLogin">小</a> <a href="javascript:fontZoomB();" class="top_UserLogin">大</a>】</td>
</tr>
</table></td>
</tr>
</table></td>
<td width="10" background="http://www.77169.com/Skin/2005/cnbbs_images/biao-5.gif"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-5.gif" width="10" height="3"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-6.gif" width="10" height="11"></td>
<td><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-8.gif" width="100%" height="11"></td>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-7.gif" width="10" height="11"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-9.gif" width="10" height="11"></td>
<td><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-3.gif" width="100%" height="11"></td>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-10.gif" width="10" height="11"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10" background="http://www.77169.com/Skin/2005/cnbbs_images/biao-4.gif"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-4.gif" width="10" height="2"></td>
<td><table cellSpacing=0 cellPadding=0 width="100%" border=0>
<tr>
<td>
<table width="100%" border=0>
<tr align="center" valign="middle">
<td height="50" colspan="2" class="main_ArticleTitle" style="word-break:break-all;Width:fixed">Windows批处理的高级用法</td>
</tr>
<tr align="center" valign="middle">
<td height="20" colspan="2" class="main_ArticleSubheading" style="word-break:break-all;Width:fixed"></td>
</tr>
<tr align="center" class="left_tdbgall">
<td colspan="2">作者:未知 文章来源:<a href='http://www.77169.com/ShowCopyFrom.asp?ChannelID=1006&SourceName=华夏收集'>华夏收集</a> 点击数:
<script language='javascript' src='http://count.77169.com/netadmin/GetHits.asp?ArticleID=63017'></script>
更新时间:2006-5-28</td>
</tr>
</table></td>
</tr>
<tr>
<td class=main_tdbg_760 id=fontzoom style="WORD-BREAK: break-all" vAlign=top colSpan=2 height=300><span style="font-size:14.8px;line-height:18px">
<table cellSpacing=0 cellPadding=10 align=left border=0>
<tr>
<td><script language='javascript' src='http://www.77169.com/AD/200604/17.js'></script></td>
</tr>
</table>
<TABLE cellSpacing=0 cellPadding=10 align=left border=0>
<TBODY>
<TR>
<TD><!--插入广告JS代码--></TD></TR></TBODY></TABLE>嗯,标题好像很大,貌似会图文并茂的讲解很多用法似的……嘿嘿,其实没这么复杂,只是从一个例子出发,抛砖引玉,引出Windows批处理中并不为我们注意的高级用法。真的很有用哦!<BR><BR>有这么一个需求,要求做一个批处理文件,能够自动执行某个目录中的几个可执行文件,并且把它们的屏幕输出存入一个Log文件中。这里涉及到两个问题:<BR>
<OL>
<LI>如何将屏幕输出转向到文件
<LI>如何确定Log的文件名 </LI></OL>这两个问题都比较简单。第一个问题,通过“>”和“>>”可以轻松搞定,第二个问题似乎也不难,因为Windows支持环境变量,其中有一个“%DATE%”代表当前的日期,还有个“%TIME%”代表当时的时间,精确到百分之一秒。似乎这已经足够了吧,于是写出下面的<a class="channel_keylink" href="http://hack.77169.com/List/List_36.html" target="_blank">脚本</a>:<BR>
<DIV style="MARGIN-LEFT: 40px"><SPAN style="FONT-FAMILY: Courier New">@echo off</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">SET LogFile=%DATE%%TIME%.log</SPAN><BR style="FONT-FAMILY: Courier New"><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app1.exe param1 param2 > %LogFile%</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app2.exe param1 param2 >> %LogFile%</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app3.exe param1 param2 >> %LogFile%</SPAN></DIV>但是,很可惜,它无法按预期结果运行,它只会生成一个没有扩展名的文件,形如“2006-05-25”。想了想,哦,明白了,因为%DATE%打出来的东西是“2006-05-25 星期四”,遇到空格之后重定向的机制就开始起作用了,它以为这就是文件名全称了。<BR>好了,那么我来加上引号,这下应该无敌了吧。<BR>
<DIV style="MARGIN-LEFT: 40px"><SPAN style="FONT-FAMILY: Courier New">@echo off</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">SET LogFile=<SPAN style="COLOR: rgb(255,0,0)">"</SPAN>%DATE%%TIME%.log<SPAN style="COLOR: rgb(255,0,0)">"</SPAN></SPAN><BR style="FONT-FAMILY: Courier New"><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app1.exe param1 param2 > %LogFile%</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app2.exe param1 param2 >> %LogFile%</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app3.exe param1 param2 >> %LogFile%</SPAN><BR style="FONT-FAMILY: Courier New"></DIV><BR>但是,还是很可惜,Windows会报告“参数错误”。这又是怎么了呢?嗯,原来,Windows不允许文件名或目录名中含有“:”,而%TIME%的输出结果中恰好有两个“:”。这就无语了。<BR>正在绝望之时,突然在命令行里鬼使神差的敲了一个“help set”,一切问题都明白了!以前都没有意识到啊,Windows批处理竟有如此强大的威力(当然,这还是没法和*nix比,不过已经比原来认识到的强多了)。<BR>现在知道了,这个<a class="channel_keylink" href="http://hack.77169.com/List/List_36.html" target="_blank">脚本</a>可以这样写:<BR>
<DIV style="MARGIN-LEFT: 40px"><SPAN style="FONT-FAMILY: Courier New">@echo off</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">SET LogFile=<SPAN style="COLOR: rgb(255,0,0)"></SPAN>%DATE%%TIME%<BR>REM 把 : 都替换成 -<BR>SET LogFile=%LogFile::=-%<BR>REM 把空格都替换成 -<BR>SET LogFile=%LogFile =-%<BR>REM 把 . 都替换成 -<BR>SET LogFile=%LogFile.=-%<BR><BR>SET LogFile=%LogFile%.log<BR style="FONT-FAMILY: Courier New"></SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app1.exe param1 param2 > %LogFile%</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app2.exe param1 param2 >> %LogFile%</SPAN><BR style="FONT-FAMILY: Courier New"><SPAN style="FONT-FAMILY: Courier New">app3.exe param1 param2 >> %LogFile%</SPAN><BR style="FONT-FAMILY: Courier New"></DIV>至于具体的原理,大家可以在命令行里面敲help set就可以清楚看到了,Windows的文档做的就是好啊。<BR>此外,还有help if和help call也很值得看,这些东西组合起来就构成了Windows批处理的高级用法。<BR><BR>嗯,说完了(噢,好像什么都没说啊……)。</span> </td>
</tr>
</table>
<table cellSpacing=0 cellPadding=0 width="100%" border=0>
<TR>
<TD><div align="center">
<script>function copyToClipBoard(){ var clipBoardContent=document.location.href;clipBoardContent+='\r\n' + document.title;window.clipboardData.setData("Text",clipBoardContent);alert("复制成功,请用“粘贴”推荐给你的好友!\r\n\r\n内容如下:\r\n" + clipBoardContent);}</script>
<INPUT name="button2" type=button title='点击复制标题和地址,发送给您网络上的好友!' onClick="copyToClipBoard()" value='点击复制本页地址,发送给您网络上的好友!'>
</div></TD>
</TR>
</TABLE>
<table width="100%" cellspacing="1" bgcolor="#959A90" >
<tr >
<td height="25" valign="middle" bgcolor="#F3F4EE" ><table width="600" border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<td width="400"><div align="right"> 责任编辑:hxhktmhy 联系方式 Email:hxhktmhy</div></td>
<td width="68" height="17"><img src="http://www.77169.com/Images/ucxogu/indextuku/email.gif" width="68" height="17" align="left" /></td>
<td width="125" valign="middle"><div align="center">电话:51228163</div></td>
</tr>
</table></td>
</tr>
<tr >
<td height="40" valign="middle" bgcolor="#F3F4EE" ><li>上一篇网管: <a class='LinkPrevArticle' href='http://netadmin.77169.com/HTML/20060602003037.html' title='文章标题:换种用法 Windows系统启动菜单大改造
作 者:刘明星
更新时间:2006-6-2 0:30:37'>换种用法 Windows系统启动菜单大改造</a></li><br>
<li>下一篇网管: <a class='LinkNextArticle' href='http://netadmin.77169.com/HTML/20060529003016.html' title='文章标题:Windows 2000中如何突破注册表容量限制
作 者:未知
更新时间:2006-5-29 0:30:16'>Windows 2000中如何突破注册表容量限制</a></li></td>
</tr>
<tr >
<td height="25" valign="middle" bgcolor="#F3F4EE" ><div align="right">【<a href="http://netadmin.77169.com/Comment.asp?ArticleID=63017" target="_blank">发表评论</a>】【<a href="http://www.77169.com/User/User_Favorite.asp?Action=Add&ChannelID=1006&InfoID=63017" target="_blank">加入收藏</a>】【<a href="http://netadmin.77169.com/SendMail.asp?ArticleID=63017" target="_blank">告诉好友</a>】【<a href="http://netadmin.77169.com/Print.asp?ArticleID=63017" target="_blank">打印此文</a>】【<a href="javascript:window.close();">关闭窗口</a>】</div></td>
</tr>
</table></td>
<td width="10" background="http://www.77169.com/Skin/2005/cnbbs_images/biao-5.gif"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-5.gif" width="10" height="3"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-6.gif" width="10" height="11"></td>
<td><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-8.gif" width="100%" height="11"></td>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-7.gif" width="10" height="11"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-9.gif" width="10" height="11"></td>
<td><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-3.gif" width="100%" height="11"></td>
<td width="10"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-10.gif" width="10" height="11"></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="C6C9C3">
<tr>
<td width="10" background="http://www.77169.com/Skin/2005/cnbbs_images/biao-4.gif"><img src="http://www.77169.com/Skin/2005/cnbbs_images/biao-4.gif" width="10" height="2"></td>
<td><table cellSpacing=0 cellPadding=0 width="100%" border=0>
<tr>
<td class=main_title_575><table width="100%" border=0>
<tr>
<td width="17%" height=15><img src="http://www.77169.com/Skin/2005/sub/wypl.gif" width="98" height="13"></td>
<td width="83%">(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)</td>
</tr>
</table></td>
</tr>
<tr>
<td height=4 vAlign=top class=main_tdbg_575><script language='javascript' src='http://count.77169.com/netadmin/Comment.asp?Action=JS&ArticleID=63017'></script>
</td>
</tr>
<tr>
<td class=main_tdbg_760><FORM name=form1 onsubmit="return Check();" action=http://count.77169.com/netadmin/Comment.asp method=post target=_blank>
<table class=main_tdbg_575 style="WORD-BREAK: break-all" cellSpacing=0 cellPadding=0 width=100% align=center border=0>
<tr>
<td><div align="right">姓 名:</div></td>
<td width=370><Input maxLength=16 name=Name>
<FONT color=red>* 游客填写 <a href='http://www.77169.com/Reg/User_Reg.asp' target=_blank>·注册用户</a></font></td>
</tr>
<tr>
<td><div align="right">主 页:</div></td>
<td colSpan=3><Input id=Title maxLength=60 size=51 value=http:// name=Homepage>
</td>
</tr>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -