2016-10-04 3 views
1

두 명령을 실행하려면 perl을 사용하려고합니다. 두 명령 모두 별도의 명령 프롬프트에서 실행해야합니다. 이 새로운 명령 프롬프트를 열고, 내가 원하는 내 스크립트를 실행하는 디렉토리에 대한 경로 - 나는 예상대로 작동perl 스크립트를 통해 여러 명령을 실행하는 방법

system('start cmd /k "cd c:\PerlExamples && perl Perl_Ex_1.pl"'); 

을 실행

가 :

여기에 세부 사항의 일부입니다.

그러나 다른 예제 스크립트를 실행할 때마다 루프에서이 시스템 ... 명령을 사용하고 싶습니다. 하지만 다음 코드 줄,

my $cmd = "perl Perl_Ex_1.pl"; 
system("start cmd /k cd c:\PerlExamples && $cmd"); 

를 실행할 때 내가 필요로하는 디렉토리에 새 명령 프롬프트 및 경로를 엽니 다. 하지만 그것은 원래 창에서 내 예제 스크립트를 실행하고 새로 열린 명령 프롬프트에서는 실행하지 않습니다.

내가 할 수있는 방법이 있습니까?

감사합니다.

+0

'/ k' 대신'/ c'을 사용해 보셨습니까? 지금은 테스트 할 수 없습니다 (Windows를 사용할 수 없음). 또는 '시작'하지 않고 시도하십시오. – PerlDuck

+0

문제는 내가 창을 열어 두지 않고 닫아야한다는 것입니다. – sharve

+0

두 번째 명령에서'cd c : \ PerlExamples && $ cmd'를 따옴표로 묶지 않았기 때문일 수 있습니까? – user3243135

답변

1

Perl 수도사의 지혜 덕분에, 나는 나의 문제에 대한 해결책을 발견했다. 솔루션에

링크 : http://www.perlmonks.org/?node_id=1173278

이 솔루션은 사용 중이다 :

my $cmd = "perl Perl_Ex_1.pl"; 
system(qq{start cmd /k "cd c:\\PerlExamples && $cmd"}); 

또는 사용 :

my $cmd = "perl Perl_Ex_1.pl"; 
system qq[ start /D c:\\PerlExamples cmd /k $cmd ]; 

감사합니다.

관련 문제