![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 12:22 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 怎么样用批处理运行一个目录里面最新的可执行文件? |
| 可打印版本 3,362 / 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: 一样的效果,试试就知道了。 |
|
| 第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 |