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'
인스톨러가 팝업 되어 화면의 지시에 따릅니다.
- 클론 $140s
- arg를 새 배열로 푸시
- & $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
'programing' 카테고리의 다른 글
PowerShell의 기본 출력 인코딩을 UTF-8로 변경 (0) | 2023.04.17 |
---|---|
Swift iOS 앱에서 상태 표시줄을 숨기려면 어떻게 해야 합니까? (0) | 2023.04.17 |
지정된 디렉토리에서 파일만 찾고 bash를 사용하여 하위 디렉토리를 무시하는 방법 (0) | 2023.04.17 |
조건의 Bash에서 "unary operator expected" 오류가 발생했습니다. (0) | 2023.04.17 |
여러 열에서 최소값을 선택하는 가장 좋은 방법은 무엇입니까? (0) | 2023.04.17 |