作者: lujisheng 时间: 2004-12-29 00:00 To Climbing:当然不是说只能用一条命令,用程序和批处理没有什么不可以的。另外,你说的sed是什么啊?作者: lujisheng 时间: 2004-12-29 00:00 To Climbing:看了半天的置顶帖子,明白了两点道理:1.Climbing是这个地方的老大。2.Climbing是一位个性鲜明讲究效率的DOS专家,而且有耐心与爱心。向你致敬。另外明白了sed是怎么回事了,不过太难了。谢谢你对我的问题的关注。作者: Climbing 时间: 2004-12-30 00:00 首先谢谢楼主对我的过誉,我不是什么DOS专家,只是一个喜欢使用命令行的人并且能够用命令行解决一些问题而已。我们还是说说你的问题吧:你的问题在用DOS命令解决起来时有这么几个困难:
1、目录名不方便提取。尤其考虑到某些目录名中带空格等字符时更是如此。
2、并不是所有的文件名都有短文件名,而你的目标文件中只需要将带短文件名的文件列出来。
让DOS命令考虑这么多的异常情况是很困难的,其实现起来的难度已经远远超过了用手工操作的烦琐度,如果楼主一定要按顶楼的要求来实现,恐怕只有通过编程的方式来进行(或者向willsort等高手请教)。我在Windows 2003下试用了一下for命令,或许对你有些帮助:
for /F %I in ('dir /a-d/b/s') do @if not %~nxsI==%~nxI echo %~nxsI=%~nxI这个命令在我的测试过程中发现对长文件名是有效的,但对某些短文件名进行处理里却出了问题,看来是for的变量扩展有问题。作者: ultralqxq 时间: 2004-12-31 00:00 如果是想要全自动安装XP,是不需要象你这样子编辑那个文件的。来看看这篇文章就知道了。很简单的。http://www.yesky.com/SoftChannel/72350085605752832/20030918/1729649.shtml不过我觉得用VBS是完全可以处理你上面的情况的。我有时间想想看。