Programing

PowerShell 스크립트를 사용하여 EXE 파일 실행

crosscheck 2020. 8. 24. 07:37
반응형

PowerShell 스크립트를 사용하여 EXE 파일 실행


PowerShell 스크립트를 사용하여 EXE 파일을 실행하려고합니다. 명령 줄을 사용하면 문제없이 작동합니다 (먼저 실행 파일의 이름과 일련의 매개 변수를 제공하여 호출합니다).

"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode

그러나 스크립트 내에서 똑같은 작업을 수행하면 오류가 반환됩니다.

용어 ' "C : \ Program Files \ Automated QA \ TestExecute 8 \ Bin \ TestExecute.exe"C : \ temp \ TestProject1 \ TestProject1.pjs / run / exit / SilentMode' 는 cmdlet, 함수의 이름으로 인식되지 않습니다. , 스크립트 파일 또는 작동 가능한 프로그램. 이름의 철자를 확인하거나 경로가 포함 된 경우 경로가 올바른지 확인하고 다시 시도하십시오.

( "&"연산자를 사용하여 명령을 호출했습니다.)

이 문제를 어떻게 해결할 수 있습니까?


& "C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode

또는

[System.Diagnostics.Process]::Start("C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe", "C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode")

업데이트 : 죄송합니다 "("& "연산자를 사용하여 명령을 호출했습니다)"문장을 놓쳤습니다. 경로를 동적으로 평가할 때이 문제가 발생했습니다. Invoke-Expression 생성을 시도하십시오.

Invoke-Expression "& `"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe`" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode"

EXE와 첫 번째 인수를 단일 문자열로 지정하는 것처럼 보입니다. '"C:\Program Files\Automated QA\TestExecute 8\Bin\TestExecute.exe" C:\temp\TestProject1\TestProject1.pjs /run /exit /SilentMode'. 작동하지 않습니다. 일반적으로 다음과 같이 경로에 공백이있는 기본 명령을 호출합니다.

& "c:\some path with spaces\foo.exe" <arguments go here>

&뒤에 cmdlet, 함수, 기본 exe 상대 또는 절대 경로와 같은 명령을 식별하는 문자열이옵니다.

이 작업을 수행하면 :

& "c:\some path with spaces\foo.exe"

필요에 따라 인수 인용 작업을 시작하십시오. 인수가 괜찮은 것처럼 보이지만 (공백이없고 PowerShell에서 해석되는 다른 특수 문자가 없음)


Powershell에서 .exe 파일 위치로 cd합니다. 예를 들면 :

cd C : \ Users \ Administrators \ Downloads

PS C : \ Users \ Administrators \ Downloads> & '. \ aaa.exe'

설치 프로그램이 나타나고 화면의 지시를 따릅니다.


  1. $ args 복제
  2. 인수를 새 배열로 푸시
  3. & $ path $ args

데모:

$exePath = $env:NGINX_HOME + '/nginx.exe'
$myArgs = $args.Clone()

$myArgs += '-p'
$myArgs += $env:NGINX_HOME

& $exepath $myArgs

참고 URL : https://stackoverflow.com/questions/4639894/executing-an-exe-file-using-a-powershell-script

반응형