почему perl-скрипты запускаются в новом окне?

Хотите говорить о Far и не знаете, куда обратиться?
x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

почему perl-скрипты запускаются в новом окне?

Post by x-yuri » Tue 05 Feb, 2013 13:49

Если нажать Enter на perl-скрипте он запускается в новом окне, окно сразу закрывается и не видно, что вывелось. Если запустить из командной строки Far'а, запускается в том же окне. Почему так и что можно сделать? Спасибо :)

2useven10
Posts: 3981
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 172 times

Re: почему perl-скрипты запускаются в новом окне?

Post by 2useven10 » Tue 05 Feb, 2013 14:27

сделайте ассоциацию на *.pl -- perl -w "!.!"

User avatar
John Doe
Бюрократ
Posts: 12519
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 228 times

Re: почему perl-скрипты запускаются в новом окне?

Post by John Doe » Tue 05 Feb, 2013 14:39

Кстати уже всплывала эта проблема, но тему что-то не найду...

2useven10
Posts: 3981
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 172 times

Re: почему perl-скрипты запускаются в новом окне?

Post by 2useven10 » Tue 05 Feb, 2013 19:51

Альтернативный вариант от NightRoman -- добавить .pl в %PATHEXT%

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: почему perl-скрипты запускаются в новом окне?

Post by x-yuri » Thu 07 Feb, 2013 08:14

Изменение %PATHEXT% не помогло. На мой взгляд было бы странно, если бы помогло. А добавление far-ассоциации решает вопрос. Но, вы знаете в чем дело? Ведь при запуске из cmd.exe или командной строки Far скрипт запускается в том же окне. Я тут подумал, что может дело в том, что при нажатии Enter Far использует ShellExecute, а не CreateProcess. Но в этом случае тоже не все сходится.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: почему perl-скрипты запускаются в новом окне?

Post by NightRoman » Thu 07 Feb, 2013 09:16

мои настройки для перла

Code: Select all

> assoc .pl
.pl=Perl
> ftype Perl
Perl="C:\Perl\bin\perl.exe" "%1" %*
> set pathext
PATHEXT=...;.PL;...
Запустите эти команды у себя, что там?

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: почему perl-скрипты запускаются в новом окне?

Post by x-yuri » Thu 07 Feb, 2013 10:32

Code: Select all

C:\Users\x-yuri>assoc .pl
.pl=Perl
C:\Users\x-yuri>ftype Perl
Perl="C:\Program Files\Perl64\bin\perl.exe" "%1" %*
C:\Users\x-yuri>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

2useven10
Posts: 3981
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 172 times

Re: почему perl-скрипты запускаются в новом окне?

Post by 2useven10 » Thu 07 Feb, 2013 10:34

и где же 'изменение PATHEXT', которое не помогло ?

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: почему perl-скрипты запускаются в новом окне?

Post by x-yuri » Thu 07 Feb, 2013 10:39

Очевидно, я его вернул назад после того как оно не помогло. Сейчас еще раз проверил с PATHEXT - не работает:

Code: Select all

C:\Users\x-yuri>set pathext
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.pl

tstr
Posts: 529
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 9 times
Been thanked: 7 times

Re: почему perl-скрипты запускаются в новом окне?

Post by tstr » Thu 07 Feb, 2013 10:42

а с x64 это не может быть связано?

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: почему perl-скрипты запускаются в новом окне?

Post by x-yuri » Thu 07 Feb, 2013 10:56

Проверил на Far 3.0 build 3156 x64, эффект тот же самый. Есть правда еще несколько вариантов...

2useven10
Posts: 3981
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 172 times

Re: почему perl-скрипты запускаются в новом окне?

Post by 2useven10 » Thu 07 Feb, 2013 11:05

у меня на рабочем xp-x64 тоже не работает (ни perl/far-32 ни 64).
дома на win7 х64 вроде бы всё работало...

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

Re: почему perl-скрипты запускаются в новом окне?

Post by NightRoman » Thu 07 Feb, 2013 11:12

На вин7 х64 у меня работает, на вин7 32 тоже. Не знаю, в чем тут дело.

x-yuri, пока пользуйтесь ассоциацией Фара. Но если разберетесь, напишите, интересно, как решается.

2useven10
Posts: 3981
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 172 times

Re: почему perl-скрипты запускаются в новом окне?

Post by 2useven10 » Thu 07 Feb, 2013 21:57

проверил на win7 - не работает :(

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: почему perl-скрипты запускаются в новом окне?

Post by x-yuri » Fri 08 Feb, 2013 04:06

win7 x64: попробовал разные комбинации perl x86/x64 + far x86/x64. Не работает. А кто-нибудь знает, откуда берутся новые окна? Far же не специально их создает? У кого-нибудь без PATHEXT не работает, а с PATHEXT работает?

x-yuri
Posts: 23
Joined: Tue 05 Feb, 2013 13:26
Been thanked: 1 time

Re: почему perl-скрипты запускаются в новом окне?

Post by x-yuri » Fri 08 Feb, 2013 10:31

Если запускать под ConEmu с открытой вкладкой Settings/Info/Debug и режимом Shell, получаем следующее при запуска с помощью Enter:

Code: Select all

10:55:33   Shell open   C:\Users\x-yuri\1.pl
10:55:33   Create       "C:\program files\Perl64\bin\perl.exe" "C:\Users\x-yuri\1.pl"
10:55:33   SrLoad
и следующее при запуске через командную строку far:

Code: Select all

10:55:37   Shell open   C:\Users\x-yuri\1.pl
10:55:37   Create       "C:\program files\Perl64\bin\perl.exe" "C:\Users\x-yuri\1.pl"
10:55:37   SrLoad
10:55:37   Inject       "C:\program files\Perl64\bin\perl.exe" "C:\Users\x-yuri\1.pl"
Похоже far по какой-то причине решает не делать inject.

Post Reply

Return to “Обсуждение Far Manager”