Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] Вызов Run() с параметрами (http://forum.oszone.net/showthread.php?t=154379)

evg64 25-10-2009 10:49 1251786

Вызов Run() с параметрами
 
Добрый день! Читал справку про вызов Run() с разными параметрами. К примеру, можно так: Run('AutoIt3.exe myscript.au3'). А как узнать, какие параметры еще можно вводить?
К тому же, как можно создать свой скрипт со своими параметрами? Например, чтобы параметр присваивался переменной в вызванном через Run скрипте:

Скрипт 1, имя myscript.au3
Код:

msgbox(0,0,$Param)
Скрипт 2
Код:

Run('AutoIt3.exe myscript.au3 $Param1')
Что нужно дописать в скрипт 1, чтобы там в мсгбоксе показывался параметр ($Param1), введенный во втором скрипте?

kaster 25-10-2009 11:35 1251811

Help -> Command line parameters

Medic84 25-10-2009 13:46 1251913

1 скрипт:
Код:

MsgBox(0,"Проверка", $Cmdline[1])
2 скрипт:
Код:

Run('myscript.exe "Параметр"')
;или
Run('AutoIt3.exe myscript.au3 "Параметр"')

Причем: 1.Параметр - в этом случае должен быть в кавчках!
2. $Cmdline[0] - содержит количество параметров
$Cmdline[1] - параметр - название переменной менять нельзя

evg64 25-10-2009 17:50 1252107

Цитата:

Цитата kaster
Help -> Command line parameters »

В смысле это http://www.autoitscript.com/autoit3/...tm#CommandLine ? Я там был.

evg64 21-11-2009 20:14 1276697

Продолжение темы: когда указываешь путь к файлу, который запускать, как указывать пробелы? Если писать тупо " ", ф-цией Run это воспринимается как начало нового параметра. Пытаюсь засунуть файл с определенным путем в Rar архив.
Код:

$Cm="a D:\мои фильмы\(DivX)Jimy Hendrix-Live at Woodstock--GIO.avi"
Run("C:\Program Files\WinRAR\WinRAR.exe "&$Cm)

Вышеприведенный код не работает.
P.S. Буду благодарен, если кто-то объяснит, как через Run() архивировать с созданием томов по n байт каждый.

SyDr 21-11-2009 20:29 1276713

Кавычки тебе нужны и при запуске архиватора из командной строки. Тебе просто нужно записать их на AutoIt.
При формировании строки ты можешь сделать это двумя способами:
1) Если строка находится в "", то одну двойную кавычку можно записать, как "" (две двойные). Пример "Это ""текст"" с кавычками"
2) Указывать строку в '' (две одинарные кавычки). 'Это "текст" с кавычками'.

Оба варианта равноправны.

evg64 22-11-2009 00:36 1276890

Благодарю! Заработало! Сделал так:

Код:

$sWhatToPack="""D:\Мои фильмы\(DivX)Jimy Hendrix-Live at Woodstock--GIO.avi"""
$sDestinationPath="""D:\Мои фильмы\test.rar"""
$Cm="a "&$sDestinationPath&" "&$sWhatToPack
Run("C:\Program Files\WinRAR\WinRAR.exe "&$Cm)

Теперь надо понять, как создать многотомный архив каждый том по n байт. Лезу в хелп винрара:
Цитата:

Пример:

WinRAR a –v1200 –s –sfx bitmaps

В данном примере создается самораспаковывающийся непрерывный архив с томами размером 1 200 000 байт.
Исправляю 3-ю строку кода на
Код:

$Cm="a v1200 "&$sDestinationPath&" "&$sWhatToPack
Не получается. Пробую v1200 менять на ""v1200"", v""1200"" - все тщетно. Как же правильно оформить команду?

SyDr 22-11-2009 10:40 1277033

Умм... Хорошо. Только у меня нет ВинРара. Покажу для 7-zip'а (Правда, благодаря ARJ у них у всех одинаковый формат командной строки). Почитал справку, понял, что интересуюющая меня строка выглядит так:
7z a -v1200k "D:\Video\жизнь с луи\7zipped\archive.zip" "D:\Video\жизнь с луи\05 Рыбка по имени Перец.avi"
На AutoIt я могу записать её, как:
'7z a -v1200k "D:\Video\жизнь с луи\7zipped\archive.zip" "D:\Video\жизнь с луи\05 Рыбка по имени Перец.avi"'

Но это не совсем правильно. Например, надо изменить имя архива или другие файлы добавить.
Код:

$sFileToPack = '"D:\Video\жизнь с луи\05 Рыбка по имени Перец.avi"'
$sDestination = '"D:\Video\жизнь с луи\7zipped\archive.zip"'
$sCMD = '7z a -v1200k ' & $sDestination & ' ' & $sFileToPack


Цитата:

Цитата evg64
Исправляю 3-ю строку кода на »

А куда - перед v дел?

evg64 22-11-2009 13:04 1277086

Круто, заработало, спасибо! Кстати я пытался - ставить -, но тоже что-то делал не так и не получалось.

DesMono 12-05-2010 19:23 1411830

Вроде и справку почитал и форум, но что-то не получается..
Товарищи знатоки, подскажи.

При таком запросе всё получается и работает, а как сделать через переменную?
Код:

Run ('7za.exe a -tzip -ssw -mx7 MyFolder.zip "C:\Documents and Settings\MyName\Application Data\MyFolder"', '', @SW_HIDE)
Пробовал так, но безуспешно. Создаётся лишь пустой архив, хотя через батник с этой переменной всё работает.
Код:

Run ('7za.exe a -tzip -ssw -mx7 MyFolder.zip "%AppData%\MyFolder"', '', @SW_HIDE)
В качестве пути не смог прикрутить.
Код:

@AppDataDir & "\MyFolder"

Creat0R 15-05-2010 19:52 1413998

Цитата:

Цитата DesMono
При таком запросе всё получается и работает, а как сделать через переменную? »

Это системная переменная, нужно либо расширять её при помощи Opt("ExpandVarStrings", 1), либо (предпочтительнее) использовать аналог в виде макроса:

Код:

Run('7za.exe a -tzip -ssw -mx7 MyFolder.zip "' & @AppDataDir & '\MyFolder"', '', @SW_HIDE)


Время: 07:58.

Время: 07:58.
© OSzone.net 2001-