首页 > 解决方案 > 使用“>”调用 .EXE-Tool - 命令内部/作为参数

问题描述

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

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

tool.exe [OPTIONS] > out.txt

该工具还在创建此输出文件后打印一些“结果”。现在,我怎样才能把这个命令放在 PowerShell 环境中呢?

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

& tool.exe '> out.txt'

或用“”:

& tool.exe "> out.txt"

我能做些什么?

编辑:

tool.exe:扫描了 1 个目录
在 ..\Tool_new.ps1:150 Zeichen:1
+ & 工具.exe > out.kml
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo:未指定:(扫描的 1 个目录:String)[],RemoteException
    + FullyQualifiedErrorId : NativeCommandError

   22 个文件失败条件
   读取 34 个图像文件

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

标签: powershellcmdcommandexe

解决方案


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

你的程序的一个例子是......

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

推荐阅读