我如何 运行 来自 PowerShell 的 *.exe 文件
How do I run a *.exe file from PowerShell
我在 C:\Folder 有一个文件夹,其中包含文件 input.xml、output.xml 和 licensegenerator.exe。 Licensegenerator.exe 获取我们放入 input.xml 的变量,并使用 output.xml 文件为我们的一个程序创建临时许可证。我们通常通过命令行执行此操作,方法是导航到 C:\Folder 目录,然后 运行 执行命令:
LicenseGenerator.exe "C:\Folder\input.xml" "C:\Folder\output.xml"
我正在尝试编写一个脚本来在 PowerShell 中执行完全相同的操作,但我正在努力...这就是我所拥有的:
$inputtest = "C:\Folder\Input.xml"
$outputtest = "C:\Folder\Output.xml"
$licensegen = "C:\Folder\LicenseGenerator.exe"
Invoke-Command $licensegen "$inputtest" "$outputtest"
当我运行这个时,我得到错误:
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
我也试过 运行 Invoke-Expression
但得到了完全相同的错误(除了它在开头说 "Invoke-Expression" )。有人知道我在这里做错了什么吗?
您正在寻找 call operator:
& $licensegen "$inputtest" "$outputtest"
Invoke-Command
本质上是用于其他主机 and/or 其他用户上下文中的 运行 脚本块。
Start-Process
很棒,因为您可以运行 as、重定向输出、隐藏子进程 window 等等。
Start-Process -FilePath $licensegen -Argumentlist $inputtest,$outputtest
& "[路径] 命令" [参数]
只需将 Invoke-Command 替换为 &
我在 C:\Folder 有一个文件夹,其中包含文件 input.xml、output.xml 和 licensegenerator.exe。 Licensegenerator.exe 获取我们放入 input.xml 的变量,并使用 output.xml 文件为我们的一个程序创建临时许可证。我们通常通过命令行执行此操作,方法是导航到 C:\Folder 目录,然后 运行 执行命令:
LicenseGenerator.exe "C:\Folder\input.xml" "C:\Folder\output.xml"
我正在尝试编写一个脚本来在 PowerShell 中执行完全相同的操作,但我正在努力...这就是我所拥有的:
$inputtest = "C:\Folder\Input.xml"
$outputtest = "C:\Folder\Output.xml"
$licensegen = "C:\Folder\LicenseGenerator.exe"
Invoke-Command $licensegen "$inputtest" "$outputtest"
当我运行这个时,我得到错误:
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
我也试过 运行 Invoke-Expression
但得到了完全相同的错误(除了它在开头说 "Invoke-Expression" )。有人知道我在这里做错了什么吗?
您正在寻找 call operator:
& $licensegen "$inputtest" "$outputtest"
Invoke-Command
本质上是用于其他主机 and/or 其他用户上下文中的 运行 脚本块。
Start-Process 很棒,因为您可以运行 as、重定向输出、隐藏子进程 window 等等。
Start-Process -FilePath $licensegen -Argumentlist $inputtest,$outputtest
& "[路径] 命令" [参数]
只需将 Invoke-Command 替换为 &