Как сделать ярлык для программы на Perl под Windows, используя командный файл? - PullRequest
2 голосов
/ 14 марта 2010

Я пытаюсь «спрятать» некоторые из моих Perl-программ от конечного пользователя, чтобы им было легче. Я делаю все возможное, чтобы не пускать их в командную строку. Сама программа имеет графический интерфейс, разработанный на Perl / Tk, поэтому им не нужно беспокоиться о командной строке.

Могу ли я написать быстрый пакетный файл, который выглядит следующим образом:

START perl 'C:\[some path here]\myscript.pl'

с START для запуска программы, интерпретатор Perl в качестве моей программы и путь / имя моего сценария Perl в качестве параметра?

Должен ли я указать, где найти perl, или Windows просто знает, потому что perl находится в переменной PATH компьютера?

Ответы [ 4 ]

5 голосов
/ 14 марта 2010

У меня есть совершенно злой VBS-скрипт и командный файл для решения подобных задач с Strawberry Perl Portable. Сценарий VBS запускает пакетный файл без вызова окна cmd. Пакетный файл определяет, где он находится, где к нему относится perl.exe, и запускает скрипт perl. В этом случае это должен быть сервер Catalyst, но его можно использовать и для чего-то еще.

Вот VBS (дрожь):

Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) &  fso.GetParentFolderName(wscript.ScriptFullName) & "\perlshell.bat"& Chr(34), 0
Set WshShell = Nothing

А вот пакетный скрипт (только чуть менее дрожащий):

echo off
set bindir=%~dp0
set perlpath=%bindir%perl\bin
set buildpath=%bindir%\bin
set PATH=%PATH%;%perlpath%;%buildpath%
"%perlpath%\wperl.exe" "%bindir%MyPhp\script\myphp_server.pl" -p 35900
2 голосов
/ 14 марта 2010

Если идея состоит в том, чтобы держать их подальше от командной строки, зачем вообще использовать командный файл? Почему бы просто не сделать ярлык? (Вы можете использовать Win32 :: Shortcut , если не хотите создавать его вручную.)

2 голосов
/ 14 марта 2010

вам не нужно "начинать" для этого. либо добавьте perl.exe из вашего пути, либо укажите полный путь к интерпретатору perl.

так что ... поместите это в ваш пакетный файл:

c:\program files\perl.exe "c:\whatever\myscript.perl"

-don

0 голосов
/ 11 сентября 2017

Есть более простой способ. Для окон:

Go to the desktop -> right click -> create a shortcut

сделает вашу цель похожей (т.е. путь к файлу perl.exe) примерно так: я покажу вам, как выглядит моя

C:\Strawberry\perl\bin\perl.exe

В моем случае у меня установлен Strawberry Perl

right click desktop shortcut -> click properties

В поле ввода цели измените его так, чтобы оно выглядело примерно так:

C:\Strawberry\perl\bin\perl.exe D:\Developer\CustomTools\login.pl

где login.pl - абсолютный путь к моему Perl-скрипту

оттуда у вас должен быть создан ярлык, позволяющий выполнять скрипт на Perl.

В случае, если вас это может заинтересовать: во всплывающем окне свойств вы также можете назначить этот вызов сценария perl нажатию кнопки клавиатуры и назначить ему горячую клавишу для запуска в любое время

Для меня я решил сделать:

ctrl+alt+i

стоять для входа в систему - для вызова сценария login.pl, который я написал. знать о системных сочетаниях клавиатуры по умолчанию

Если у вас есть какие-либо вопросы, дайте мне знать!

Спасибо за ваше время!

...