Вчера мой перегретый мозг выдал идею - а нельзя ли написать небольшой скрипт, который бы с заданным интервалом запускал программы из списка? Потому что когда пихаешь в автозагрузку штук пять-семь программ, да ещё на не новом, мягко говоря, компьютере, то всё получается грустно. Машинка пыхтит, греется процессором, скрипит жёстким диском и тупит в десять раз больше обычного. А если всё то же самое запускать по очереди, то, может, оно лучше будет? Решил попробовать.
Можно, конечно, сделать, что называется, в лоб. То есть прямо в скрипте поочерёдно вызывать нужные программы, вставляя между ними требуемую задержку. Но так же не интересно.
Поэтому решил, что нужно разнести программную и конфигурационную части по разным файлам. Как будто я настоящий программист, а не .cmd файл в винде пишу :-)
Задуманное у меня получилось совсем не сразу, поскольку "я же не настоящий сварщик". Но получилось.
Итак, в файлик, скажем, app_list.txt пишем как-то так:
10;"C:\Program Files\7-Zip\7zFM.exe"
20;"C:\Program Files\IrfanView\i_view64.exe"
Числа - это время задержки, после которого запустится программа. Приблизительно, в секундах. На самом деле - количество пингов на "пустой" адрес. После точки с запятой в кавычках пишем полный путь к запускаемой программе. Вот такой файл конфигурации.
Сам скрипт тоже не очень большой:
@ECHO OFF
SETLOCAL
SET APP_LIST=%~dp0\app_list.txt
FOR /F "tokens=1,2 delims=;" %%i in (%APP_LIST%) DO (
ping -n %%i 127.0.0.1 2>&1>NUL
START "" %%j
)
:END
Три строчки.
Первая строка в цикле читает из файла конфигурации параметры. ключ "tokens=1,2" говорит, что из каждой строки выбирается две подстроки. Ключ "delims=;" говорит, что разделителем подстрок служит точка с запятой.
Вторая строчка служит для задержки перед запуском программы из списка. Пингует localhost столько раз, сколько указано в строке конфигурации, до точки с запятой. Каждый пинг - примерно секунда. Так что можно считать, что задержку указываем в секундах.
Третья строчка, собственно, запускает программу.
И так в цикле пробегается весь список. Красота нечеловеческая! :-)
И вот что хочется сказать напоследок. Для подобной задачи, сделать отложенный запуск программ, которая делается в несколько строчек на встроенном скриптовом языке Windows, пишутся специальные утилиты! Ну, например, Startup Delayer. Там, конечно, интерфейс, кнопочки, все дела... Но ТРИ СТРОЧКИ .cmd файла!