Re dosforever:
因为个人原因没有及时回复兄的发帖,深感抱歉!兄以上的发言,我无不赞同,其实你我所言也并无相悖之处。只是前次回复并没有在工具使用上发表过多意见,但见兄等如此热诚,遂忙里偷闲,借机补述几句,以作深入探讨:
第一,“第三方”确实只是一个概念,一个由“第一方”软件生产者创造并维护的概念,对于作为“第二方”的使用者——我们来说,通常情况下它是个无关紧要的概念。但在某些特殊情况下,这个概念就可转化为实质上的影响力。比如,微软创造了MSDOS ,并成为了这个系统的毫无疑义的“第一方”,而西门铁克、JPSoftware之类则有意无意半推半就地成为了这个系统的“第三方”,而“第二方”的我们往往可以随时放弃任何“第三方”,因为我们常常可以找到更好的替代品,但对“第一方”我们已经产生了一种无可争议的依赖,因为我们很难找到同样的代替品。
第二,任何人都可以使用任何第三方的产品,但前提是他能得到这个产品。兄默认4DOS是任何DOS 迷都可以轻松得到的宝物,所以才不遗余力地推广它。但是目前看来,它的获取途径与我们所经常使用的软件产品(比如DOS 和Windows )相比而言,还是要狭窄得多,有相当多的DOS 使用者无法接触网络甚至D 版光盘(也许你感到不可思议,因为我曾经学习过4DOS,但是只是在书与本中,因为当时我无法得到这个软件,所以最后我放弃了继续深入),对于他们而言,使用第一方产品来完成自己的需求有着相当必要性和必然性;另外,在诸如启动盘、无盘站等上机环境中,第一方产品有时是无可奈何的必然选择。
第三,在批处理中使用外部命令以至第三方工具都是完全可以的,但是同时你需要保证它在可能运行的任何环境中都能得到足够的支持,为了满足这种支持,一者是将所有的支持程序同你的批处理同时打包在一起进行发布,二者可以将外部程序以类似 MIME 的方式编码入批处理程序内部,但是这些方法都会造成程序体积过大,丧失了批处理程序的优越性。所以,我们只能限制批处理程序的运行环境,但有时这种限制是致命的。
第四,减少IO确有其必要性,但如果无法避免而不会明显影响程序运行时,适当使用也可以收到化腐朽为神奇的效果。我现在所编写的批处理程序几乎已经无法避免地要使用到它,它已经成为了我的批处理编程语法中异常重要的一部分。
第五,%temp%.\的用法并不属于一种语法错误,而是一种语法技巧。他是为了兼容对带斜线路径(比如C:\)和不带斜线路径(比如C:\temp)的引用。如果%temp%为类似于C:\的根路径时,则%temp%.\filename.ext 为C:\.\filename.ext ,因为根路径下的当前路径仍然是根路径,所以不会影响文件的引用,但却防止了双“\”的路径语法错误;而如果%temp%为类似C:\temp 的目录路径时,则%temp%.\filename.ext则变成了C:\temp.\filename.ext ,因为Temp. (无扩展名的目录名)仍然是temp,所以文件引用依然有效,也防止了不带“\”的路径语法错误。
最后,以兄的签名作结,表达我们共同的祝愿!
——“DOS倒下了,但永远不死”
Last edited by willsort on 2005-10-30 at 13:58 ]