run如何运行指定目录下的某个EXE文件?
假设要运行a目录的b或者c文件b和c是不固定的,但是,都是exe文件
那么,我要怎么运行b或者c文件呢?
a目录下只有b和c之间的一个文件 如何运行b或c关键是条件。 随便写个,自己改吧$path ="a目录的完整路径"
_SF($path)
Func _SF($searchdir="")
If $searchdir = "" then $searchdir = @ScriptDir
$search = FileFindFirstFile($searchdir & '\*.*')
If $search = -1 Then Return -1
While 1
$file = FileFindNextFile($search)
If @error Then
FileClose($search)
Return
ElseIf $file = '.' Or $file = '..' Then
ContinueLoop
ElseIf StringInStr(FileGetAttrib($searchdir & '\' & $file), 'D') Then
_filelist($searchdir & '\' & $file)
EndIf
If StringRight($file, 4) = ".exe" Then
If $file<>@ScriptName Then
ShellExecute($searchdir&"\"&$file,"",$searchdir)
Exit 0
EndIf
EndIf
WEnd
EndFunc 哎,就想取个文件名,怎么要那么多代码,郁闷。
就想取到A文件夹下的b或者c文件的文件名为变量
然后用run去执行 4# jumzhou
不知“b和c不固定”是什么意思?
文件名称不确定,还是不可预知?还是文件是否存在不确定?? 4# jumzhou
如果文件名称可预知,可以先通过名称查看文件是否存在,用循环加条件判断 哎,就想取个文件名,怎么要那么多代码,郁闷。
就想取到A文件夹下的b或者c文件的文件名为变量
然后用run去执行
jumzhou 发表于 2009-11-2 16:12 http://www.autoitx.com/images/common/back.gif
你行你自己搞吧,我上面的源码,就是找出指定路径的所有exe,然后运行 可以先试一下别人的代码合不合适自己然后你在说别人,别人写出来的代码也要时间应该先谢谢别人不合适在说 楼上几位误会了,我的意思是,au3的代码好像很繁杂
因为习惯了批处理里直接用for语句就能获取目录下exe的文件名,所以才会觉得au3的代码很多
有不敬之处,望体谅 写多几行有问题?汇编更长。。。
而且这样也不错嘛。。。
你自己精简下源码就行,我写这样,主要是想满足你可以更好的更改。。。 $aFile = _FileListToArray($path, ".exe")
select
case _ArrayFindAll($aFile, "a.exe") <> -1
run(a.exe)
case _ArrayFindAll($aFile, "b.exe") <> -1
run(b.exe)
endselect
页:
[1]