2017-05-16 122 views
0

C : \ Folder에 input.xml, output.xml 및 licensegenerator.exe 파일이있는 폴더가 있습니다. Licensegenerator.exe는 input.xml에 입력 한 변수를 가져 와서 output.xml 파일을 사용하여 프로그램 중 하나에 대한 임시 라이센스를 만듭니다. 폴더 디렉토리 \, 다음 명령을 실행 : 우리는 일반적으로 C로 이동하여 명령 줄을 통해이 작업을 수행 내가 PowerShell의 정확한 같은 일을 할 수있는 스크립트를 작성하려고 해요PowerShell에서 * .exe 파일을 실행하는 방법

LicenseGenerator.exe "C:\Folder\input.xml" "C:\Folder\output.xml" 

,하지만 난 나는 또한 Invoke-Expression 실행하지만 말한다 제외하고 (동일한 오류가 시도

 
Invoke-Command : A positional parameter cannot be found that accepts argument 
'C:\Folder\Output.xml'. 
At line:5 char:1 
+ Invoke-Command $licengegen "$inputtest" "$outputtest" 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Invoke-Command], ParameterBindingException 
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeCommandCommand 

:이 프로그램을 실행할 때

$inputtest = "C:\Folder\Input.xml" 
$outputtest = "C:\Folder\Output.xml" 
$licensegen = "C:\Folder\LicenseGenerator.exe" 

Invoke-Command $licensegen "$inputtest" "$outputtest" 

, 나는 오류를 얻을 : 어려움을 겪고 ... 여기에 내가 가진 무엇 " Invoke-Expression "으로 시작). 아무도 내가 여기서 뭘 잘못하고 있는지 알지 못해?

+0

& $ licensegen "$의 inputtest"로 호출-명령을 대체 "[경로] 명령"[주장]

""속임수를 썼는지 outputtest $. 다들 감사 해요! –

답변

2

당신은 call operator 찾고 :

& $licensegen "$inputtest" "$outputtest" 

Invoke-Command 본질적 다른 호스트 및/또는 다른 사용자의 컨텍스트에서에 scriptblocks를 실행.

1

Start-Process 당신은 runas, 출력 방향 재 지정, 자식 프로세스 창 숨기기 등이 가능하기 때문에 위대합니다.

Start-Process -FilePath $licensegen -Argumentlist $inputtest,$outputtest

-1

& 그냥 &