Как выйти из командной оболочки после запуска сценария Perl? - PullRequest
0 голосов
/ 12 января 2010

Если я запускаю сценарий Perl из командной строки (c: \ windows \ system32 \ cmd.exe), как мне выйти из командной строки после завершения выполнения сценария.

Я пробовал system("exit 0") внутри скрипта Perl, но это не выходит из командной строки cmd, из которой выполняется скрипт Perl.

Я также попробовал команду exit; в скрипте Perl, но она тоже не работает.

Ответы [ 5 ]

5 голосов
/ 12 января 2010

Попробуйте запустить скрипт Perl с командной строкой, подобной этой:

perl script.pl & exit

Амперсанд начнет вторую команду после окончания первой. Вы также можете использовать && для выполнения второй команды, только если первая удалась (код ошибки 0).

4 голосов
/ 12 января 2010

Вы пробовали cmd.exe /C perl yourscript.pl?

В соответствии с cmd.exe /? /C выполняет команду, указанную в строке, а затем завершается.

3 голосов
/ 12 января 2010

Если вы запускаете командную оболочку только для запуска сценария perl, ответ Аркаитца Хименеса должен сработать (я за это проголосовал)

Если нет, вы можете создать командный файл, например runmyscript.bat, с содержанием:

@echo off
perl myscript.pl
exit

exit завершит сеанс оболочки (и в качестве побочного эффекта завершит сам пакетный скрипт).

3 голосов
/ 12 января 2010

Вы можете запустить программу в новом окне, используя команду START Dos . Если вы называете это с /B, то дополнительное окно не создается. Затем вы можете вызвать EXIT, чтобы закрыть текущее окно.

Это поможет?

0 голосов
/ 12 января 2010

Вы можете отправить сигнал родительской оболочке из Perl:

 kill(9,$PARENT_PID);`

К сожалению, функция getppid() не реализована в Perl в Windows, поэтому вам придется узнать PID родительской оболочки с помощью других средств. Кроме того, сигнал №9 может быть не лучшим выбором.

...