使用“>”-作为参数内部/参数的命令调用.EXE工具

时间:2018-10-18 20:12:30

标签: powershell cmd command exe

我想使用PowerShell脚本调用EXE工具(基于Perl)。

基本上,以下命令在CMD中调用该工具。该工具处理一些文件并创建一个外文件:

tool.exe [OPTIONS] > out.txt

此外,该工具在创建此outfile后会打印一些“结果”。 现在,如何将这个命令放在PowerShell环境中?

我尝试了不同的解决方案,但PowerShell本身始终使用“> out.txt”。该工具无法获取此命令,因此将无法正确创建文件:

& tool.exe '> out.txt'

或带有“”的

& tool.exe "> out.txt"

我该怎么办?

编辑:

tool.exe :     1 directories scanned
In ..\Tool_new.ps1:150 Zeichen:1
+ & tool.exe > out.kml
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (    1 directories scanned:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

   22 files failed condition
   34 image files read

打印的结果是“扫描了1个目录” +“ 22个文件失败情况” +“读取了34个图像文件”。

2 个答案:

答案 0 :(得分:0)

您可以使用:

& tool.exe | Out-File -Path '.\out.txt' -Encoding ascii

答案 1 :(得分:0)

在powershell或ISE中,按预期运行可执行文件的选项是让cmd.exe处理它。这确实增加了很少的开销,并且随着技术的进步,cmd将被淘汰。但是在过渡时期,这是一个不错的选择。

程序的一个示例是...

cmd.exe /c "tool.exe > out.txt"