Условное выполнение файлов с помощью скрипта AutoIt

Много раз нам нужно автоматически выполнять файлы на основе их расширений. Думаю, это можно сделать через AUTOIT. Может ли кто-нибудь указать мне на это?

Это помогло получить расширения.

$parts = StringSplit($file,"\.",0)
$ext = $parts[$parts[0]]
$filename = $parts[$parts[0] - 1] 

Тогда как настроить условное выполнение?


person Stat-R    schedule 23.04.2012    source источник


Ответы (2)


Сравнение расширений

Предполагая, что вы хотите сравнить ряд расширений, самым простым способом является оператор switch. :

Switch $ext
    Case "txt"
        ; What to do with text files
    Case "htm", "html"
        ; Example of matching more than one extension
    Case Else
        ; Extension wasn't any of the above
EndSwitch

Разрешение оболочке выполнять файлы

Что, я думаю, вы на самом деле хотите сделать, так это позволить компьютеру решить, какая программа лучше всего подходит для выполнения файла. Эта информация хранится в реестре вместе с расширением (в HKEY_CLASSES_ROOT), но вам ничего этого знать не нужно, так как вызывается специальная функция ShellExecute. Это использует расширение для запуска обработчика по умолчанию для файла (с возможностью использования данного «глагола»). например:

ShellExecute("C:\Test.txt")
person Matt    schedule 23.04.2012
comment
Маршрут +1 Switch/Case, вероятно, ваш лучший выбор, просто чтобы убедиться, что одно и то же приложение открывается в любом развертывании. - person Anthony Miller; 25.04.2012
comment
@Mechaflash, да, но это зависит от того, со сколькими расширениями вам, возможно, придется иметь дело, и иногда пользователь раздражается, когда вы заставляете его использовать программу, которая может не соответствовать его предпочтениям. - person Matt; 25.04.2012
comment
Вы абсолютно правы в этом. Тогда я полагаю, что все сводится к административному контролю над предпочтениями пользователя. - person Anthony Miller; 25.04.2012

Разве ShellExecute не будет работать лучше, чем выполнение нескольких операторов Switch? Если у вас настроены ассоциации файлов для расширений файлов, то ShellExecute автоматически откроет программу по умолчанию для этого расширения.

Если вы не пытаетесь запустить конкретную программу, которая не установлена ​​по умолчанию для типа файла, например, запустите Chrome для файла HTML, в то время как IE является программой по умолчанию для файлов HTML, тогда ему не нужно много дополнительная работа условного оператора.

person BrewManNH    schedule 08.05.2012