programing

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

codeshow 2023. 4. 17. 22:10
반응형

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\자동화된 QA\TestExecute 8\Bin\Test Execute.exe" C:\temp\테스트 프로젝트 1 \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와 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, function, native exe relative path 또는 absolute path를 식별하는 문자열이 와야 합니다.

이 작업이 완료되면:

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

필요에 따라 주장을 인용하는 작업을 시작합니다.인수에는 문제가 없는 것 같습니다(공백이나 PowerShell에서 해석하는 다른 특수 문자 없음).

Powershell에서 .exe 파일 위치에 cd를 입력합니다.예를 들어 다음과 같습니다.

cd C:\Users\Administrators\Downloads

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

인스톨러가 팝업 되어 화면의 지시에 따릅니다.

  1. 클론 $140s
  2. arg를 새 배열로 푸시
  3. & $path $140s

데모:

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

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

& $exepath $myArgs

다음은 이전 응답의 일부에 대한 변형입니다.다음 옵션 중 하나를 필요에 따라 Powershell 프로파일에 추가할 수 있습니다.

에일리어스 사용

만약 당신이 망치지 않고 무언가를 운영하길 원한다면$env:PATH.

Set-Alias -Name docker -Value 'C:\Program Files\Docker\Docker\resources\bin\docker.exe'

함수를 사용하다

또는 스크립트가 더 필요한 경우.

function docker {
# below is a basic example - go crazy here
& 'C:\Program Files\Docker\Docker\resources\bin\docker.exe' @Args
}

개발자가 아니기 때문에 여러 ps 명령어를 한 줄로 실행하는 솔루션을 찾았습니다.예:

powershell "& 'c:\path with spaces\to\executable.exe' -arguments ; second command ; etc

&(앰퍼샌드) 앞에 (큰따옴표)를 붙이면 실행 파일이 실행됩니다.내가 발견한 어떤 예에서도 이것은 언급되지 않았다.큰따옴표가 없으면 ps 프롬프트가 열리고 입력을 기다립니다.

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

반응형