perl
  • powershell
  • variables
  • 2016-07-15 2 views -1 likes 
    -1

    나는 powershell에 인수를 전달하고 Perl로 데이터를 반환하는 Perl 스크립트를 가지고있다. 그 값은 저장되어 있지만 그 값을 변수에 할당하고 싶습니다. 그렇게하는 방법을 모르겠습니다.Perl에서 출력을 변수에 저장하는 방법

    sub getvalue{ 
    print "Getting value...\n"; 
    my $renamecmd = 'Powershell.exe -executionpolicy remotesigned -File C:\Workspace\Utilities\pathtofile.ps1'." $val"; 
    my @output = `$renamecmd`; 
    foreach (@output) { 
    return $_; 
    } 
    } 
    
    $newvar = $_; 
    

    위의 내용은 작동하지 않습니다.

    +6

    나는이 질문을 이해하지 못한다. 그 루프에서'@ output'의 첫 번째 요소를 리턴합니다. 즉, 루프가 반환 되었기 때문에 루프 처리가 중지됨을 의미합니다. '@ output'은 sub에 어휘 적이기 때문에, 그것은 사라진다. 그러나 당신의 코드가'getvalue' 서브를 호출하지 않기 때문에, 결코 중요하지 않습니다. 어쨌든 결코 실행되지 않기 때문입니다. '$ newvar = $ _'의 할당은'$ newvar' (무서운 변수 이름 인 btw)에 무엇인가를 할당합니다. ** 실제 ** 코드를 보여주십시오. – simbabque

    +0

    이것은 실제 코드이지만 일부 항목의 이름을 변경했습니다. –

    답변

    0

    내 해결책은 다음과 같습니다.

    sub getValue{ 
        print "Getting value...\n"; 
        my $renamecmd = 'Powershell.exe -executionpolicy remotesigned -File C:\Workspace\Utilities\pathtofile.ps1'." $var"; 
        my @output = `$renamecmd`; 
        $newvar= $output[3]; 
    } 
    

    다시 말하지만 이것은 끔찍한 변수 이름을 가진 모형입니다.

    관련 문제