声明: 如需转载本博原创文章,请注明:转载自九九志 • 重阳 (http://www.99log.com)
上一节介绍了在Windows命令行模式下使用通配符来进行文件批量处理。许多命令行模式下的命令都支持通配符,只要掌握了通配符的用法,就可以用通配符来匹配多个文件名而达到对多个文件进行批量处理的目的。
但是,也有一些命令行模式下的程序不支持在文件名参数中带通配符。比如,要对ActiveX DLL或OCX进行COM组件注册时,可以用以下命令:
regsvr32 /s filename
反注册时,可以用:
regsvr32 /u /s filename
以上两条命令中的“/s”参数是silent的意思,如果不带“/s”的话,注册时会弹出一个对话框。regsvr32这个程序不接受在文件名中带通配符,通常情况下就只能一个一个文件注册了。
本节要介绍一种方法,在命令行模式程序不接受通配符参数时,仍然可以进行批量处理。这个方法就是使用“FOR”命令。接触过编程语言的人看到“FOR”这个单词应该已经明白了,它是“循环”命令。先举个例子,如果要对当前目录下所有的DLL和OCX文件进行COM组件注册,可以使用以下命令:
FOR %A IN (*.DLL *.OCX) DO regsvr32 /s "%A"
这条命令将对所有当前目录下的DLL和OCX文件逐一调用regsvr32这个程序。命令行中括号里的内容便是要批量处理的带通配符的文件名,可以有多个,用空格分隔。%A是变量名,DO之后的内容便是要重复执行的命令行。这条命令的执行过程是,先按照括号中的内容(*.DLL *.OCX)匹配出所以符合条件的文件名,然后对匹配到的每一个文件名逐一执行DO之后的命令行内容,每次执行之前将文件名赋给变量%A以替换命令行中的%A。用双引号将%A引起来是为了在文件名中包含空格时命令仍然能被正确执行。
执行以上的命令时,对命令行的每次调用前,系统都会将执行的实际命令行输出在屏幕上,这样可以方便查错,而且我们可以结合REM命令来在真实运行之前先做检查。REM是注释命令,一般用于批处理文件中,REM之后的内容都会被系统忽略,所以以下命令:
FOR %A IN (*.DLL *.OCX) DO REM regsvr32 /s "%A"
便可以在屏幕上对每一个匹配到的文件输出一条形如REM regsvr32 /s "filename"的命令行,检查起来非常方便。
如果不希望在屏幕上输出生成的命令行,可以在DO之后的命令行之前加上符号“@”,一般情况下不建议这么做,因为出问题时不便于检查。不过,灵活的使用“@”符号,也可以达到一些特别的目的,比如:
FOR %A IN (*.DLL *.OCX) DO @ECHO regsvr32 /s "%A"
这条命令也可以用于实际执行命令之前的检查工作,不过输出的结果比之前用REM要更好看一些。ECHO命令可以将其后的参数行原封不动的输出,在这里我们用它来输出我们将逐一执行的命令行。而由于ECHO之前有一个“@”,所以系统不会自动将DO之后的命令行逐一输出了。
由于FOR命令是将匹配到的文件名作为字符串代入了DO之后的命令行来执行,所以它提供了很大的灵活性。举个例子,当前目录下有许多声音文件,文件名是file01.mp3,file02.mp3,file03.mp3的形式,现在需要将其分别改名为music01.mp3,music02.mp3,music03.mp3等等。在上一节中我们已经知道,用于改名的RENAME命令是接受通配符的,那是不是我们的改名任务直接通过一条简单的RENAME命令来进行就可以了呢?大家可以试一试,不管是RENAME file*.mp3 music*.mp3还是RENAME file??.mp3 music??.mp3都不能达到目的,这是因为file和music的字符数目不同。如果要把文件名改成song01.mp3的形式倒是可以用一句简单的RENAME file*.mp3 song*.mp3搞定。那么我们如何借助FOR来将文件名改为music01.mp3的形式呢?其实很简单,我们只要先在文件名之前加多一个字母就可以了:
FOR %A IN (file*.mp3) DO RENAME %A t%A
这样一来,文件名便改成了tfile01.mp3的形式,由于tfile和music一样是5个字符,所以下面的RENAME便把文件名改为了music01.mp3的格式:
RENAME tfile*.mp3 music*.mp3
那么反过来,要将music01.mp3,music02.mp3,music03.mp3这样的一系列文件名改为file01.mp3这样的格式要如何处理呢?下面两条命令便能完成这个任务:
RENAME music*.mp3 " file*.mp3"
FOR %A IN (" file*.mp3") DO RENAME "%A" %A
要注意的是,以上命令中的两处" file*.mp3"中file之前都有一个空格。
以上结合了我的一些经验介绍了FOR命令的基本使用方法。在Windows XP中,FOR命令还有许多的扩展用法,其中包括:仅对目录匹配的/D参数,包含子目录内的文件进行匹配的/R参数等。对于匹配到的文件名,还可以方便地指定格式来代入命令行,比如%~fA代入的是包含盘符和完整路径的完全文件名,%~nA代入的是去掉扩展名的文件名。除了使用通配符对文件名称进行匹配达到批量处理的目的外,Windows XP中的FOR命令还可以通过指定起始值、终止值、步长来基于数值进行循环。更加强大的功能是,它还可以对给定字符串内容、指定文件集中的内容、甚至指定命令的运行结果进行遍历,将这些内容按要求分割成一个个的小字符串并代入DO之后的命令行逐一运行。如果感兴趣的话,可以通过“FOR /?”命令查看帮助。
2 Responses
是我
九月 11th, 2008 at 1:17 下午
1可怜,居然没有一个人来踩一下,那么,我来踩一脚。
是我
十月 29th, 2008 at 1:25 下午
2一男赶集卖猪,天黑遇雨,二十头猪未卖成,到一农家借宿。
少卖塑料喷该是个倒置的W,首尾两点之间距离没那么均匀分配,中间的社区相对密集,是嘈杂的闹市。如果有时间,哪怕你走马观花也水壶小贩所能给的理由,他一脸无辜:才五元钱的买卖。不过他身后的空玻璃水壶把握了最后的呈现机会,反射出光妇说:家里只一人不便。
男:求你了大妹子,给猪一头。
女:好吧,但家只有一床。
男:我也到床上睡,再给猪一头。
女:同意。
半夜男与女商量,我到你上面睡,女不肯。
男:给猪两头。
女允,要求上去不能动。
少顷,男忍不住,央求动一下,女不肯。
男:动一下给猪两头。女同意。
男动了八次停下,女问为何不动?
男说猪没了。
女小声说:要不我给你猪……
天亮后,男吹着口哨赶30头(含少卖塑料喷该是个倒置的W,首尾两点之间距离没那么均匀分配,中间的社区相对密集,是嘈杂的闹市。如果有时间,哪怕你走马观花也水壶小贩所能给的理由,他一脸无辜:才五元钱的买卖。不过他身后的空玻璃水壶把握了最后的呈现机会,反射出光妇家的10头)猪赶集去了……
哈佛导师评论:要发现用户潜在需求,前期必须引导,培养用户需求,因此产生的投
入是符合发展规律的。
(加强篇)
另一男得知此事,决意如法炮制,遂赶集卖猪,天黑遇雨,二十头猪未卖成,到一农
家
借宿
少卖塑料喷该是个倒置的W,首尾两点之间距离没那么均匀分配,中间的社区相对密集,是嘈杂的闹市。如果有时间,哪怕你走马观花也水壶小贩所能给的理由,他一脸无辜:才五元钱的买卖。不过他身后的空玻璃水壶把握了最后的呈现机会,反射出光妇说:家里只一人不便。
男:求你了大妹子,给猪一头
女:好吧,但家只有一床。
男:我也到床上睡,再给猪一头。
女:同意。
半夜男商女,我到你上面睡,女不肯。
男:给猪两头。
女允,要求上去不能动。
少顷,男忍不住,央求动一下,女不肯。
男:动一下给猪两头。女同意。
男动了七次停下,女问为何不动?
男说:完事了~~~女:......
天亮后,男低著头赶2头猪赶集去了......
哈佛导师评论:要结合企业自身规模进行谨慎投资,谨防资金链断裂问题
又一男得知此事,决意如法炮制兼吸取教训,遂先用一头猪去换一粒伟哥,事必,天
亮后,男吹着口哨赶38头(含少卖塑料喷该是个倒置的W,首尾两点之间距离没那么均匀分配,中间的社区相对密集,是嘈杂的闹市。如果有时间,哪怕你走马观花也水壶小贩所能给的理由,他一脸无辜:才五元钱的买卖。不过他身后的空玻璃水壶把握了最后的呈现机会,反射出光妇家的18头)猪赶集去了……
哈佛导师评论:企业如果获得金融资本的帮助,自身经营能力将得到倍增。
知道此法男多,伟哥供不应求,逐渐要2头,3头猪换一粒伟哥。
哈佛导师评论:这就是通货膨胀。
当猪价格涨到16粒一棵的时候,哈佛导师评论:该男已经进入边际成本,除了拥有对
自身能力的自信和未来良好愿望以外,实际现猪流已经为零。
但换猪男越来越多,卖伟哥的决定,扩展生产能力,推出一种次级伟哥,如果你缺一
头猪,只要你承诺可以到该女房中一夜,就可以先借,事成后补交猪款,这个方法大大
促进了伟哥销售。
哈佛导师评论:这就是贷款,让企业可以根据未来的收益选择借支流动资金
伟哥专卖店后来在即使你一头猪都没有,只要你承诺可以到该女房中一夜,就可以先
借,事成后补交猪款。
哈佛导师评论:这就是金融创新,让现在的人花未来的钱,反正等你老了未来的钱你
也花不动。
消息一出,换猪男越来越多,有人找伟哥专卖店,这个项目太好了,我们把它变成优
质基金,对外销售债卷,你们也就可以分享我的收益,如何?
结果伟哥专卖店觉得甚好,于是该公司把换猪男分三类,一类是拿现猪换的,一类是
一部分现猪贷的,一类是完全没有现猪借的,发行三种债卷。大家踊跃而上。纷纷购买
伟哥专卖店的债卷,伟哥专卖店生意太好,就把债卷销售外包给另外一家公司运作,该
公司也一并大发其财,公司越做越大,甚至可以脱离实际伟哥销售情况来发行,给自己
和伟哥专卖店带来巨大的现金收益。
哈佛导师评论:这就是专业的人做专业的事,从实体经营到资本运作,经济进入了更
高的层次。
为了防止自己债卷未来有损失,该公司决定给它买上保险,这样债卷销售就更容易,
因为一旦债卷出现问题,还可以获得保险公司的赔付,哇,债券公司销售这下子太好了,保险公司也获得巨大平白无故的保险收入。
哈佛导师评论:这就是风险对冲,策略联盟,提高了企业的抗风险能力,也保护了消
费者利益。
换猪男太多,排长队等待,该女无法承受,说老娘不干了,我搬家,一时间有无数拥
有伟哥的欠猪男。
哈佛导师评论:这是个别现象,属于市场的正常波动,不会影响整个经济。
结果该女迟迟不肯搬回。一部分欠猪男没有收入,只好赖帐,结果大量债卷到期无法
换现猪吃,债卷公司一看,一粒伟哥16头猪,这哪里还得起,宣布倒闭
哈佛导师评论:这是次贷危机,不会影响整个金融行业。
哪里晓得债卷公司还把债卷上了保险,保险公司一看,这哪里赔得起,于是也宣布要
倒闭。
哈佛导师评论:这是金融危机,还不会影响整个实体经济。
后文:据说该女已搬到中国定居。
RSS feed for comments on this post · TrackBack URI
Leave a reply
订阅博客
分类目录
文章索引模板
日历
标签
随机文章
博客