谁能帮我写一个能搜索每个盘符下面每个文件夹找到这个文件并执行它
谁能帮我写一个能搜索每个盘符下面每个文件夹直到找到这个文件并执行它$var = DriveGetDrive( "FIXED" )
If NOT @error Then
MsgBox(4096,"", "Found " & $var & " drives")
For $i = 1 to $var
If FileExists($var[$i]&"\123.bat") = 1 Then
Run( $var[$i]&"\123.bat")
EndIf
Next
EndIf
这个代码只能找每个盘符的根目录。
所以不行啊。
老大能不能帮忙一下啊。 Func _FindAndRun($Tag)
Local $i,$flag
Local $Partition,$Path
$flag=0
For $i=67 To 90
$Partition=Chr($i)&":"
If DriveStatus($Partition)="READY" Then
If FileExists($Partition&"\"&$Tag) Then
$flag=1
$Path=$Partition&"\"&$Tag
ExitLoop
EndIf
EndIf
Next
If $flag=1 Then
RunWait($Path)
EndIf
Return $flag
EndFunc
要搜索的文件写在什么地方啊?
#include <Constants.au3>
Opt("MustDeclareVars",1)
Dim $Drive, $File
$Drive = InputBox("输入", "请输入驱动器字符!(如:C)", "", "", 180, 80,-1, -1)
If @error Then Exit
$File = InputBox("输入", "请输入你要检测的文件名称!", "", "", 180, 80,-1, -1)
If @error Then Exit
_GetFileName()
Func _GetFileName()
Local $foo,$line,$lines
$foo = Run(@ComSpec & " /c dir /b /s /a " & $File, $Drive & ":\", @SW_HIDE, $STDOUT_CHILD)
$lines = ""
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
$lines &= $line
Wend
MsgBox(0,"test",$lines)
EndFunc
#NoTrayIcon
#include-once
Opt("MustDeclareVars", 1)
#include <Constants.au3>
Dim $Drive, $I, $File
$File = InputBox("输入", "输入要查找的文件名:", "", "", 180, 80, -1, -1)
If @error Or $File = "" Then Exit
$Drive = DriveGetDrive("ALL")
For $I = 1 To $Drive
Local $foo, $line, $lines
$foo = Run(@ComSpec & " /c dir /b /s /a " & $File, $Drive[$I] & "\", @SW_HIDE, $STDOUT_CHILD)
ProcessWaitClose($foo)
$lines = ""
$line = StdoutRead($foo)
If @error Then ExitLoop
$lines &= $line
If $lines = "" Then ContinueLoop
;MsgBox(0, "找到的文件:", $lines)
FileWriteLine("Find.log" ,$lines)
Next
$I = 0
While 1
$I = $I 1
$File = FileReadLine("Find.log", $I)
If @error Then ExitLoop
ShellExecute($File, "", @ScriptDir, "", 1)
WEnd
FileDelete("Find.log")
[ 本帖最后由 liongodmien 于 2008-9-28 21:45 编辑 ] 楼上的
while 1
$i = $i 1
$file = filereadline(:find.log,$i)
其中$i = $i 1 有错误发生!!
[ 本帖最后由 liyi-softs 于 2008-10-20 20:21 编辑 ] 明显是$I=$I+1
页:
[1]