我正在尝试创建一个脚本来运行exe
文件夹中的userprofile
,但是我似乎无法使该命令正常工作。知道如何使它正常工作吗?
我尝试过:
$env:userprofile\es-cli\es.exe myParameter
我收到一条错误消息:
Unexpected token '\es-cli\es.exe' in expression or statement.
也尝试过:
($env:userprofile)\es-cli\es.exe myParameter
遇到错误unexpected token \es-cli\es.exe
`$($env:userprofile)\es-cli\es.exe myParameter`
遇到错误the term $ is not recognized as the name of a cmdlet...
$loc = "{0}\es-cli\es.exe" -f $env:userprofile
$loc myParameter # cant do this because $loc is a string
答案 0 :(得分:1)
& ("{0}\es-cli\es.exe" -f $env:userprofile) myParameter
基于下面Mathias的评论,我最终使用:
&(Join-Path $env:USERPROFILE 'es-cli\es.exe') myParam
答案 1 :(得分:0)
我知道这是很多代码。但我喜欢它,因为它使您可以更好地控制启动的程序的行为,统计信息,获取返回码以及在需要时返回错误。这是执行Startprocess方法的漫长方法。
$Path = "$($env:userprofile)\es-cli\es.exe"
$Args = "myParameter"
$newProcess = new-object System.Diagnostics.ProcessStartInfo $Path;
$newProcess.Arguments = $Args
$RunPro2 = New-Object System.Diagnostics.Process
$RunPro2.StartInfo = $NewProcess
$RunPro2.Start()
$RunPro2.WaitForExit()
$ProcessExitCode = $RunPro2.ExitCode.ToString()
答案 2 :(得分:0)
使用呼叫运营商应该可以:
& $env:userprofile\es-cli\es.exe myParameter
假设您不想将其添加到路径中:
$env:path += ";$env:userprofile\es-cli"
es myParameter