Войти

Показать полную графическую версию : [решено] Как сделать скрипт на AutoIT чтобы он проверял все диски и искал файл


Alex_86_
09-11-2013, 22:24
Добрый день! Я новичок в написании скриптов.
Подскажите как сделать скрипт на AutoIT, чтобы он проверял все диски (съемные и не съемные) на предмет наличия определенного файла и при нахождении такового делал как в это скрипте:
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:\WIN51 set CDROM=%%i:
set DVD=%CDROM%
Потом запускается установка программ.
Пример: start/wait %cdrom%\WPI\Winrar.exe

madmasles
10-11-2013, 05:48
Alex_86_,
Попробуйте сделать так.Global (http://www.autoitscript.com/autoit3/docs/keywords.htm#Global) $aDrive, $sPath, $hSearch, $sFileExe, $sDirSearch = '\Windows\', $sDirExe = 'System32\'
;поменяйте имена папок $sDirSearch и $sDirExe на нужные Вам, например, на \WIN51\ и WPI\ как в Вашем примере.
$aDrive = DriveGetDrive (http://autoit-script.ru/autoit3_docs/functions/DriveGetDrive.htm)('ALL')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @error (http://autoit-script.ru/autoit3_docs/macros.htm#@error) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit) MsgBox (http://autoit-script.ru/autoit3_docs/functions/MsgBox.htm)(16, 'Error', 'Ошибка поиска дисков', 5)
For (http://www.autoitscript.com/autoit3/docs/keywords.htm#For) $i = 1 To (http://www.autoitscript.com/autoit3/docs/keywords.htm#To) $aDrive[0]
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) FileExists (http://autoit-script.ru/autoit3_docs/functions/FileExists.htm)($aDrive[$i] & $sDirSearch) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then)
$sPath = $aDrive[$i] & $sDirSearch
ExitLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ExitLoop)
EndIf (http://www.autoitscript.com/autoit3/docs/keywords.htm#EndIf)
Next (http://www.autoitscript.com/autoit3/docs/keywords.htm#Next)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) Not (http://www.autoitscript.com/autoit3/docs/keywords.htm#Not) $sPath Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit) MsgBox (http://autoit-script.ru/autoit3_docs/functions/MsgBox.htm)(16, 'Error', 'Ни на одном диске не найдена папка ' & $sDirSearch, 5)
$sPath &= $sDirExe
$hSearch = FileFindFirstFile (http://autoit-script.ru/autoit3_docs/functions/FileFindFirstFile.htm)($sPath & '*.exe')
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @error (http://autoit-script.ru/autoit3_docs/macros.htm#@error) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) Exit (http://www.autoitscript.com/autoit3/docs/keywords.htm#Exit) MsgBox (http://autoit-script.ru/autoit3_docs/functions/MsgBox.htm)(16, 'Error', 'В папке ' & $sPath & ' не найдены файлы *.exe', 5)
While (http://www.autoitscript.com/autoit3/docs/keywords.htm#While) 1
$sFileExe = FileFindNextFile (http://autoit-script.ru/autoit3_docs/functions/FileFindNextFile.htm)($hSearch)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @extended (http://autoit-script.ru/autoit3_docs/macros.htm#@extended) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) ContinueLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ContinueLoop)
If (http://www.autoitscript.com/autoit3/docs/keywords.htm#If) @error (http://autoit-script.ru/autoit3_docs/macros.htm#@error) Then (http://www.autoitscript.com/autoit3/docs/keywords.htm#Then) ExitLoop (http://www.autoitscript.com/autoit3/docs/keywords.htm#ExitLoop)
ConsoleWrite (http://autoit-script.ru/autoit3_docs/functions/ConsoleWrite.htm)($sPath & $sFileExe & @LF (http://autoit-script.ru/autoit3_docs/macros.htm#@lf));смотрите в справке функции Run, RunWait, RunAs, RunAsWait, ShellExecute, ShellExecuteWait и тд...
WEnd (http://www.autoitscript.com/autoit3/docs/keywords.htm#WEnd)

Alex_86_
10-11-2013, 19:08
madmasles,
спасибо! Все работает.

madmasles
13-11-2013, 18:54
Alex_86_,
Я забыл в самом конце закрыть поиск:;...
WEnd
FileClose($hSearch)




© OSzone.net 2001-2012