中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-15 12:17
47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎么样用批处理运行一个目录里面最新的可执行文件?
可打印版本  3,360 / 17
第1楼 yishanju 发表于 2007-03-13 03:30
银牌会员 发帖 1,357 积分 1,488
怎么样用批处理运行一个目录里面最新的可执行文件?
怎么样用批处理运行一个目录里面最新的可执行文件?

不考虑子目录,不用第三方工具,文件名没有规律,^_^看看大家都是怎么实现的
第2楼 lxmxn 发表于 2007-03-13 03:36
版主 发帖 4,938 积分 11,386
  放在要执行的文件所在的目录中运行,没有测试:
第3楼 yishanju 发表于 2007-03-13 03:42
银牌会员 发帖 1,357 积分 1,488
^_^
dir /o:d 才对吧或者 dir /o/d
第4楼 lxmxn 发表于 2007-03-13 03:46
版主 发帖 4,938 积分 11,386
Originally posted by yishanju at 2007-3-12 14:42:
^_^
dir /o:d 才对吧或者 dir /o/d


  一样的效果,试试就知道了。
第5楼 yishanju 发表于 2007-03-13 03:49
银牌会员 发帖 1,357 积分 1,488
汗,我看错了
第6楼 yishanju 发表于 2007-03-13 03:50
银牌会员 发帖 1,357 积分 1,488
^_^如果有文件名中有空格呢...会怎么样?
第7楼 yishanju 发表于 2007-03-13 03:53
银牌会员 发帖 1,357 积分 1,488
D:\Documents and Settings\Administrator>%name%
'd' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

D:\Documents and Settings\Administrator>
第8楼 yishanju 发表于 2007-03-13 03:55
银牌会员 发帖 1,357 积分 1,488
for /f "delims=" %%a in ('dir /od/b *.exe') do set name="%%a"
"%name%"
加上引号,如果文件名中有空格,应该也不会出错了吧
第9楼 yishanju 发表于 2007-03-13 03:59
银牌会员 发帖 1,357 积分 1,488
^_^ 想起一个问题,如果把这个批处理放到要运行的可执行程序的目录里边,那个这个批处就变成目录里最新的文件了

这样应该会造成死循环
第10楼 chainliq 发表于 2007-03-13 04:01
高级用户 发帖 244 积分 635 来自 广西贵港
for /f "delims=" %%a in ('dir /od/b *.exe') do set name="%%a"
%name%
path %name%
start %name%
这样可能也行,没试过哈```
第11楼 lxmxn 发表于 2007-03-13 04:04
版主 发帖 4,938 积分 11,386
Originally posted by yishanju at 2007-3-12 14:59:
^_^ 想起一个问题,如果把这个批处理放到要运行的可执行程序的目录里边,那个这个批处就变成目录里最新的文件了

这样应该会造成死循环


  Re yishanju:
  
  应该不会造成死循环,因为此批处理搜索的只是可执行文件(*.exe),而并非是批处理文件(*.bat、*.cmd),运行之后执行的也就不可能是批处理;

  对于加上引号,是有必要的,防止可执行文件名含有空格导致运行可执行文件出错,是我疏忽了。
第12楼 yishanju 发表于 2007-03-13 04:10
银牌会员 发帖 1,357 积分 1,488
应该不会造成死循环,因为此批处理搜索的只是可执行文件(*.exe),而并非是批处理文件(*.bat、*.cmd),运行之后执行的也就不可能是批处理;
^_^ 嗯,我想像的时候把.exe 去掉了
第13楼 yishanju 发表于 2007-03-13 04:56
银牌会员 发帖 1,357 积分 1,488
for /f "delims=" %%a in ('dir /od/b *.exe') do set name="%%a"
start "f:\tem%name%"
应该像这样加上start 才行.不然,底下的代码就有可能不执行了,
第14楼 leton 发表于 2007-03-13 06:53
初级用户 发帖 72 积分 170
楼主好像是要实现,智能判断目录最新可执行文件。

挺有意思,有空研究一下,前期思路:

通过把文件信息输出到 log.txt(信息收集)
然后导入 log.txt 进行判断(那个文件为最新执行文件)然后执行

不知道思路对不.
第15楼 everest79 发表于 2007-03-13 07:05
金牌会员 发帖 1,127 积分 2,564
dir /t:c /o:d 新建时间排序
dir /t:a /o:d 访问时间排序
dir /t:w /o:d 修改时间排序
lxmxn的好方法,原来都没注意过
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023