我在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:找不到可以接受参数的位置参数
'C:\ Folder \ Output.xml'。
在第5行char:1
+调用命令$ 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
本质上是用于在其他主机上和/或在其他用户上下文中运行脚本块。
关于powershell - 如何从PowerShell运行* .exe文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44006998/