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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] Быстрый запуск программ из командной строки (http://forum.oszone.net/showthread.php?t=305528)

jah 16-09-2015 21:59 2554065

Быстрый запуск программ из командной строки
 
Здравствуйте!

Windows 7
Решил переместить весь портативный софт на отдельный раздел диска, чтобы при переустановке системы по минимуму затрагивать его.
Для того, чтобы быстро запускать эти программы из окна Выполнить, идеально подошёл вариант с App Paths:
создаём reg-файл, по ходу добавления программ добавляем нужные ключи туда,
после переустановки системы один раз запустить это reg-файл и из окна Выполнить можно будет запускать эти программы по короткому имени.
Получится нечто типа
Код:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\MyAppName.exe]
@="D:\\PortableApps\\AppName.exe"
...

либо локально для текущего пользователя в ветке
Код:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths

Осталось определить как лучше сделать возможность быстро запускать эти программы из командной строки.

Ничего больше в голову не пришло как использовать для этого переменные окружения.
Можно создать некоторую переменную окружения например, PortableAppsPath, добавить её в Path и писать туда пути к каталогам с исполнимыми файлами программ.
Можно даже поместить всё это в тот же самый reg-файл в одну из веток
Код:

HKEY_CURRENT_USER\Environment
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Но получается не очень хорошо, так как
- полностью затираем результат достигнутый при помощи App Paths, который как раз призван был избавится от засорения Path
- запускать придётся по исходному имени (а оно иногда длинное) и тут либо переименовывать запускные файлы, либо делать ссылки
- размер переменных окружения ограничен, то есть рано или поздно место закончится
Попутно вопрос: каков максимальный размер переменной окружения в windows 7? так и осталось 32767 2-байтных символа вместе с её именем, как в xp (если эта информация верная)?

Чтобы уменьшить размер содержимого, помещаемого в переменную PortableAppsPath, можно создать дополнительный каталог, добавить путь к нему в Path и помещать в него ссылки на исполняемые файлы программ.
Тут придётся учесть ряд моментов:
- приходится дополнительно создать каталог и помещать туда ссылки
- от переменной среды PortableAppsPath полностью не избавляемся, хотя бы потому, что есть наборы утилит (например, Sysinternals) и других программ, у которых далеко не единственный исполняемый файл в каталоге и делать на каждый из них ссылку выглядит неразумным
- жёсткие ссылки не всегда подходят, так как часто portable launcher начинает отсчитывать пути от каталога, в котором находится, поэтому по ссылке в другом каталоге он просто не найдёт то, что хотел
- чтобы при запуске по ссылке из командной строки не писать каждый раз расширение .lnk придётся добавить его в pathext
- ...

Как можно более разумно решить эту проблему?

Спасибо!

jah 17-09-2015 20:14 2554477

Цитата:

Цитата jah
Осталось определить как лучше сделать возможность быстро запускать эти программы из командной строки. »

Чтобы ничего не городить со ссылками, остановился на
- создании переменной среды PA (PortableApps)
- создании переменной среды PortableAppsPath с добавлением туда каталогов с наборами программ (например, D:\PortableApps\Sysinternals)
- обе добавил в Path

Тем самым охватил быстрый запуск из окна Выполнить программ из каталогов с наборами программ,
а из cmd: cd /d %pa% -> cd s + tab-ом до нужного каталога -> AppName, в принципе, терпимо


Время: 01:10.

Время: 01:10.
© OSzone.net 2001-