Автор |
Сообщение |
AlexRock Гуру |
|
Т. е. пишу, например
start C:\"Program Files"\app.exe
но при этом хочу передать приложению (не .bat-файлу) app.exe несколько параметров. Как это сделать?
Ну и дополнительный вопрос: чтобы этот батник пускался автоматически при запуске системы, достаточно ли запихнуть его в папку "Автозагрузка" или есть способы получше и понадёжнее? А то у меня половина программ, ярлыки которых в автозагрузке сидят, не пускаются при старте системы, что странно. |
|
|
|
|
sham ум, честь, совесть эпохи! Предупреждений : 4
|
|
delПоследний раз редактировалось: sham (Ср 23-03-22 : 02-49), всего редактировалось 1 раз |
|
|
|
|
Epsilon Гуру |
|
start C:\"Program Files"\app.exe %1 %2 %3
?
можно сделать батник:
echo %1
echo %2
echo %3
и запустить его, передав ему 3 параметра.... |
|
|
|
|
AlexRock Гуру |
|
А как самому батнику параметры передавать? Я так понимаю, через командную строку или через создание ярлыка на него? Но первое мне не подходит - я же хочу в автозапуск его запихнуть, чтобы самому ничего не вбивать. А второе не полходит тем, что длина поля "Объект", в котором можно параметры вписывать, не превышает где-то 256 символов. У меня же в параметрах полные пути файлов или адреса служб в Интернете. И ещё одно ограничение на параметры батников - не более 10 штук. А если мне надо 12 адресов передать?
Вобщем, нет ли какого-нибудь простого способа получить один файл, по клике на котором, без ввода всяких дополнительных параметров (всё должно вводиться автоматически) запускается приложение с передачей ему 12 длиннющих параметров?
Я могу, конечно, свою простенькую консольную программку написать, но просто хотел узнать, можно ли как попроще - вот, про батники и ярлыки вычитал. |
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
AlexRock писал(а): |
А как самому батнику параметры передавать? |
Запустить батник через другой батник - этот вариант точно работает, мы на лабах подобное делали.
AlexRock писал(а): |
Вобщем, нет ли какого-нибудь простого способа получить один файл, по клике на котором, без ввода всяких дополнительных параметров (всё должно вводиться автоматически) запускается приложение с передачей ему 12 длиннющих параметров? |
Ну, смотри, если у тебя параметры берутся автоматом, то делаешь батник, который их вынимает, этот батник запускает другой батник, который данные опции использует, запуская твой app.exe с нужными именами файлов.
Правда, в системе "батник->батник", кажется, есть свои тонкости. Если найду старый материал, то напишу. |
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
AlexRock
Цитата: |
C:\Documents and Settings\root>help call
Вызов одного пакетного файла из другого.
CALL [диск:][путь]имя_файла [параметры]
параметры Набор параметров командной строки, необходимых
пакетному файлу.
Изменение команды CALL при включении расширенной обработки команд:
Команда CALL допускает использование меток в качестве адресата вызова.
Применяется следующий синтаксис:
CALL :метка аргументы
При вызове создается новый контекст текущего пакетного файла с заданными
аргументами, и управление передается на инструкцию, расположенную сразу после
метки. Для выхода из такого пакетного файла необходимо дважды достичь
его конца. Первый выход возвращает управление на инструкцию, расположенную
сразу после строки CALL, а второй выход завершает выполнение пакетного файла.
Команда GOTO /? выводит описание расширения GOTO :EOF, позволяющее выполнить
быстрый возврат из пакетного файла.
Кроме того, раскрытие ссылок на аргументы пакетных файлов (%0, %1 и т.д.)
Для продолжения нажмите любую клавишу . . . |
Как видишь, тут загвоздка в том, что первый батник остается висеть на исполнении. Хотя, быть может, это не так уж важно. |
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
AlexRock писал(а): |
И ещё одно ограничение на параметры батников - не более 10 штук. |
Цитата: |
При вызове командного файла можно в командной строке задавать последовательность аргументов, отделенных друг от друга пробелами, которые будут замещать формальные параметры при интерпретации строк bat-файла. Допускается использовать до 10 формальных параметров с именами %0, %1, …, %9. Действует принцип позиционного соответствия параметров и аргументов, т.е. вместо %0 подставляется имя самого командного файла, вместо %1 подставляется первый аргумент и т.д.
Пример: Пусть имеется командный файл pf.bat, содержащий строки:
@ECHO OFF
TYPE %1
PAUSE
TYPE %2
PAUSE
Запустить его на выполнение можно, набрав команду pf.bat f1.txt f2.txt. Результатом работы станет вывод на экран содержимого файла f1.txt, а затем, после нажатия клавиши – файла f2.txt.
Для обработки неизвестного заранее количества параметров можно использовать команду SHIFT – сдвиг списка формальных параметров относительно списка аргументов. Если после операции сдвига выполнять возврат (GOTO) к обработке параметра, то количество аргументов – фактических параметров – может ограничиваться только длиной командной строки. Тогда первому формальному параметру будет поочередно соответствовать 1-й, 2-й, 3-й и т.д. фактический параметр. Такой «цикл» должен завершиться, когда закончатся фактические параметры (т.е. очередной параметр окажется пустым).
|
Вот тут сам думай. Если тебе именно формальные параметры нужны, то лучше прожку написать.
В конце концов, тебе в ней никто не запрещает shell юзать. |
|
|
|
|
AlexRock Гуру |
|
ДобрыйФей писал(а): |
то лучше прожку написать |
Да уж, когда пошла такая каша с двумя батниками и кучей наворотов, то лучше прожку в несколько строк написать. Я-то думал, что батники - нормальные такие штуки для как раз таких задач. А они какие-то обрезанные по возможностям донельзя. Чуть что сложнее простого, так сразу громождение костылей начинается. ) |
|
|
|
|
ДобрыйФей Мечтатель Предупреждений : 5
|
|
AlexRock
Это же прикладные языки, чего ты хотел? Для некоторых нужд очень даже подходят - я, например, в курсовой анализатор лога с температурами делал на баше (с графиками через гнуплот ), куда проще, чем на С. |
|
|
|
|
|
Аватары: Вкл|Выкл ЮзерИнфо: Вкл|Выкл Подписи: Вкл|Выкл
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах Вы не можете вкладывать файлы Вы можете скачивать файлы
|
|