Показать полную графическую версию : [решено] Запуск программ из батника
Обычно запуск программ из батника выглядит как строка: “c:\program files\example.exe”
А как быть, если нужно запустить произвольный exe-файл из нужной папки?
Вариант “c:\program files\*.exe” не проходит…
akrav, это типа *******.bat имя. расширение ? Так?
Задачи на bat-файлах (http://forum.ru-board.com/topic.cgi?forum=5&topic=4582&start=0)
Gerdewski
04-04-2008, 10:04
Вариант “c:\program files\*.exe” не проходит… »
Это конечно не подойдет.
И как понимать запустить произвольный exe-файл »?
Первый попавшийся?
Здесь, мне кажется, лучше пользоваться средствами vbs.
В известной папке находиться один exe-ник. Имя этого файла периодически меняется. Поэтому чтобы не переправлять батник, желательно написать строку для самого общего варианта, т.е. для *.exe.
Имхо, простым батником здесь не обойтись
лучше пользоваться средствами vbs.
Petya V4sechkin
04-04-2008, 14:42
akrav, обычным циклом:
For %%I In ("E:\13\*.exe") Do %%I
Если ехе-файл один подойдёт и код
dir/B *.exe > 1.bat
start 1.bat
есть над чем поработать, например избавится от необходимости писать файл 1.bat
Здравствуйте. К сожилению не хватает знаний чтобы немного доделать эту команду For %%I In ("E:\13\*.exe") Do %%I , она работает, но не до конца, после выполнения батником в ХР, открывается всегда один и тот же экзэшник, после его закрытия открывается один и тотже следующий и т. д. , то последывательность открытия всегда одинаковая. Если не отнимет много времени подскажите плз как доделать команду чтобы выбор exe был чисто случайным?
@pause
For %%I In ("C:\~\system32\*.exe") Do %%I & Exit
@pause
Кажись так, но я не шарю :)
Паузы после теста можно стереть.
она работает, но не до конца, »
как раз таки она работает до конца :)
Да нет же, я говорю про случайный выбор. Именно случайный выбор. Экзешники включаются по очереди каждый после закрытия предыдущиго, но последывательность всегда одна и таже. А интересно как сделать чтобы выбор первого включающигося экзешника был случайный? Может как то типа "выключить ехе" - "выключить ехе" и так на время от 2 секунд до 5 путем применения ping -n (2-5?) localhost , но тогда как сделать чтобы выбор количества пингов был случайным? Т.е. пока cmd пингует идет процесс включения - выключения экзэшников, прекращение пинга и есть выбор ехе в этот момент открытого, но как тогда сделать произвольное кол-во пингов? Может кто знает? Хотя мне подойдет и скрипт vbs, для случайного выбора файла, только покароче,может кто знает?
Wens,
Да нет же, я говорю про случайный выбор. Именно случайный выбор.
@echo off
setlocal enabledelayedexpansion
:randomize
for %%i in ("<путь к экзешникам>\*.exe") do (
set current!random:~-1!=%%i
)
for /l %%j in (0,1,9) do (
if defined current%%j (
"!current%%j!"
)
)
goto randomize
процессы генерируются непрерывно, так что если будешь документы им открывать, используй start /wait
Intexid спасибо за помощь, генерация вроде действительно идет, но экзешники не открываются, как ее остановить? Никакие дописанные снизу команды не действуют. Куда и что надо дописать?
Wens
экзешники не открываются
попробуем запускать их start'ом
как ее остановить
пауза или таймер до выхода из цикла
@echo off
setlocal enabledelayedexpansion
:randomize
for %%i in ("<путь к экзешникам>\*.exe") do (
set current!random:~-1!=%%i
)
for /l %%j in (0,1,9) do (
if defined current%%j (
start "!current%%j!"
)
cls
pause
)
goto randomize
если exe'шники будут вести себя не так как ожидается, скажи как именно,
а продолжаться все это безумие будет, только пока удерживаешь любую клафишу,
можно ограничить количество запусков, или частоту, или задержку вставить
Есть переменная "окружения" %random% - выдает случайное число в пределах от 0 и до 32767
1. Если кол-во экзешников строго определено, то заранее высчитав "вес" вероятности на запуск, укладываемся в одну строчку:
(предположим, что экзешников в каталоге 10, тогда вероятность примерно равна 3276 из 32767)
for %%f in (MyFolder\*.exe) do if /I 3276 LSS %random% start /wait %%f
2. Если кол-во экзешников "плавает", то нужно в первом цикле пробежаться и подсчитать их кол-во, затем подсчитать вероятность, а третью строку оставить почти в примере выше, но с заменой уровня вероятности на переменную
start "!current%%j!" »
Так запуск через start писать нельзя! Правильно будет так:start "" "!current%%j!" Первую запись в кавычках start считает заголовком окна и, в вашем варианте, не запустит сам файл, а выведет новое консольное окно с заголовком состоящим из названия этого файла.
gora,
Первую запись в кавычках start считает заголовком окна
спасибо за совет. пожалуй, буду его придерживаться,
хотя, на практике, если честно, не замечал
Ребят, извините, но я не могу разобраться в нагромождении этих команд. @echo off, cls, pause я отлично понимаю, остальное весьма смутно. Путь к экзешникам я указываю, и начинается процесс генерации, но остановить то его как? Как довести до ума вариант Intexida? Где и что надо дописать? Если start или start /wait , то в каком месте их прописывать? Вариант от NiOLa тоже не работает, пробовал с десятью экзешниками.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.