2011-11-22 6 views
2

perl을 사용하여 실행 파일을 실행하는 방법은 무엇입니까?Windows XP에서 Perl을 사용하여 실행 파일을 실행하는 방법은 무엇입니까?

예를 들어 일반 notepad.exe를 실행하고 싶습니다. 내가 어떻게 이걸 얻을 수 있니?

my @args = system("notepad.exe"); 
system(@args) == 0 or die "system @args failed: $?"; 

을하지만 반환 : 나는 무엇을 놓치고

Can't spawn "cmd.exe": No such file or directory blah blah blah.

이 내가있어 무엇인가?

+0

Google을 사용해 보셨나요? –

+0

예,하지만 제가 발견 한 것은 저에게 의미가 없습니다. – quinekxi

+2

'system'은 배열이 아닌 단일 값을 반환합니다. 자세한 설명은'perldoc -f system'을보세요. perlmonks에 대한 [이 스레드] (http://www.perlmonks.org/?node_id=421595)는 현재 나와있는 오류에 대해 설명합니다 (몇 가지 다른 솔루션이 제시됨). – gamen

답변

2

시도해보십시오.

+0

감사합니다. 그것은 설명해야합니다. :) – quinekxi

-1

이것은 깨진 환경으로 인한 Perl 내부 오류입니다. Perl은 system에 전달 된 프로그램을 실행하기 위해 두포에서 사용되는 Windows 쉘 cmd.exe을 찾을 수 없습니다.

일부 유틸리티를 Process Monitor으로 사용하면 OS 수준에서 어떤 현상이 발생하는지 확인할 수 있습니다.

5

코드가 약간 혼란스러워 보입니다. 당신이 아마 원하는 것은

my $cmd = "notepad.exe"; 
my @args = ($cmd, "readme.txt"); 

system(@args); 

if($? == -1) { 
    die "system @args failed: $?"; 
} 

system 같은 것이 하나의 값이 아닌 배열을 반환합니다. 자세한 설명은 perldoc -f system을 참조하십시오.

This thread (perlmonks)은 몇 가지 다른 해결책을 제시하면서 발생하는 오류에 대해 설명합니다.

이 답변은 내 원래 덧글의 확장입니다. 불필요한 경우 미안 해요.

+0

그 스레드 정말 내 질문에 대답 않았다. – quinekxi

관련 문제