Войти

Показать полную графическую версию : [решено] Запуск программы по маске


habib2302
03-09-2017, 11:20
Доброе время суток. Как запустить программу по маске. Имеется допустим AcroRdrDC1500720033_ru_RU.exe и с выходом нового релиза версия (сборка) меняется. И мне нужно, чтобы скрипт запускал программу по маске AcroRdrDC*_ru_RU.exe

Iska
03-09-2017, 12:02
Запустит первый подходящий файл из текущего каталога, прочие проигнорирует:
AutoItSetOption("MustDeclareVars", 1)

Local $oFSO = ObjCreate("Scripting.FileSystemObject")
Local $oFile

For $oFile In $oFSO.GetFolder(".").Files
If StringRegExp($oFile.Name, "AcroRdrDC\d+_ru_RU\.exe") = 1 Then
ConsoleWrite($oFile.Name & @CRLF)
Run($oFile.Name)

ExitLoop
EndIf
Next

Exit(0)

habib2302
03-09-2017, 14:04
Iska, а как правильно вставить $oFile.Name между исполняемым файлом допусти 7z.exe и командой для распаковки -oc:\soft

Iska
03-09-2017, 14:15
а как правильно вставить $oFile.Name между исполняемым файлом допусти 7z.exe и командой для распаковки -oc:\soft »
Покажите, как выглядит команда, просто с «AcroRdrDC1500720033_ru_RU.exe».

habib2302
03-09-2017, 14:23
7z.exe e @ScriptDir\AcroRdrDC1500720033_ru_RU.exe -o@ScriptDir\AcroRdrDC

Iska
04-09-2017, 02:14
Ну, если надо именно так — не текущий каталог, а каталог скрипта — то придётся по-другому.
AutoItSetOption("MustDeclareVars", 1)

Local $oFSO = ObjCreate("Scripting.FileSystemObject")
Local $oFile

For $oFile In $oFSO.GetFolder(@ScriptDir).Files
If StringRegExp($oFile.Name, "AcroRdrDC\d+_ru_RU\.exe") = 1 Then
Run('"7z.exe" e "' & $oFSO.BuildPath(@ScriptDir, $oFile.Name) & '" -o"' & $oFSO.BuildPath(@ScriptDir, 'AcroRdrDC') & '"')

ExitLoop
EndIf
Next

Exit(0)




© OSzone.net 2001-2012