|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『楼 主』:
怎么样用批处理运行一个目录里面最新的可执行文件?
怎么样用批处理运行一个目录里面最新的可执行文件?
不考虑子目录,不用第三方工具,文件名没有规律,^_^看看大家都是怎么实现的
|
|
2007-3-13 03:30 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
2 楼』:
放在要执行的文件所在的目录中运行,没有测试:
@echo off
for /f "delims=" %%a in ('dir /od/b *.exe') do set name="%%a"
%name%
|
|
2007-3-13 03:36 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
3 楼』:
^_^
dir /o:d 才对吧或者 dir /o/d
|
|
2007-3-13 03:42 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
4 楼』:
Quote: | Originally posted by yishanju at 2007-3-12 14:42:
^_^
dir /o:d 才对吧或者 dir /o/d |
|
一样的效果,试试就知道了。
|
|
2007-3-13 03:46 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
|
2007-3-13 03:49 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
6 楼』:
^_^如果有文件名中有空格呢...会怎么样?
|
|
2007-3-13 03:50 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
7 楼』:
D:\Documents and Settings\Administrator>%name%
'd' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
D:\Documents and Settings\Administrator>
|
|
2007-3-13 03:53 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
8 楼』:
for /f "delims=" %%a in ('dir /od/b *.exe') do set name="%%a"
"%name%"
加上引号,如果文件名中有空格,应该也不会出错了吧
|
|
2007-3-13 03:55 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
9 楼』:
^_^ 想起一个问题,如果把这个批处理放到要运行的可执行程序的目录里边,那个这个批处就变成目录里最新的文件了
这样应该会造成死循环
|
|
2007-3-13 03:59 |
|
|
chainliq
高级用户
学无尽止
积分 635
发帖 244
注册 2006-4-15 来自 广西贵港
状态 离线
|
『第
10 楼』:
for /f "delims=" %%a in ('dir /od/b *.exe') do set name="%%a"
%name%
path %name%
start %name%
这样可能也行,没试过哈```
|
学无尽止 |
|
2007-3-13 04:01 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
11 楼』:
Quote: | Originally posted by yishanju at 2007-3-12 14:59:
^_^ 想起一个问题,如果把这个批处理放到要运行的可执行程序的目录里边,那个这个批处就变成目录里最新的文件了
这样应该会造成死循环 |
|
Re yishanju:
应该不会造成死循环,因为此批处理搜索的只是可执行文件(*.exe),而并非是批处理文件(*.bat、*.cmd),运行之后执行的也就不可能是批处理;
对于加上引号,是有必要的,防止可执行文件名含有空格导致运行可执行文件出错,是我疏忽了。
|
|
2007-3-13 04:04 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
12 楼』:
应该不会造成死循环,因为此批处理搜索的只是可执行文件(*.exe),而并非是批处理文件(*.bat、*.cmd),运行之后执行的也就不可能是批处理;
^_^ 嗯,我想像的时候把.exe 去掉了
|
|
2007-3-13 04:10 |
|
|
yishanju
银牌会员
[b]看你妹啊[/b]
积分 1488
发帖 1357
注册 2006-5-20
状态 离线
|
『第
13 楼』:
for /f "delims=" %%a in ('dir /od/b *.exe') do set name="%%a"
start "f:\tem%name%"
应该像这样加上start 才行.不然,底下的代码就有可能不执行了,
|
|
2007-3-13 04:56 |
|
|
leton
初级用户
积分 170
发帖 72
注册 2007-3-11
状态 离线
|
『第
14 楼』:
楼主好像是要实现,智能判断目录最新可执行文件。
挺有意思,有空研究一下,前期思路:
通过把文件信息输出到 log.txt(信息收集)
然后导入 log.txt 进行判断(那个文件为最新执行文件)然后执行
不知道思路对不.
|
|
2007-3-13 06:53 |
|
|
everest79
金牌会员
一叶枝头,万树皆春
积分 2564
发帖 1127
注册 2006-12-25
状态 离线
|
『第
15 楼』:
dir /t:c /o:d 新建时间排序
dir /t:a /o:d 访问时间排序
dir /t:w /o:d 修改时间排序
lxmxn的好方法,原来都没注意过
|
|
2007-3-13 07:05 |
|