为什么我通过 powershell 运行的可执行文件没有生成输出?

为什么我通过 powershell 运行的可执行文件没有生成输出?

我用 C++ 编写了一个文本解析器,它可以从命令行正常运行。我试图将其包含在 Powershell API 调用的批处理文件中,以立即转换接收到的数据。我意识到这可能是一种规避方法,但我是一名学生,刚刚开始掌握自动化(不断重复的)数据检索过程的技巧。

问题是 .exe 不会写入输出文件,即解析后的文本。我尝试了几种方法,目前我处于:

powershell.exe -command "& {$exePath = Join-Path -Path 'C:\....\data' -ChildPath ('\abcd_{0:MM-dd-HH}\MetOfficeParser.exe' -f (Get-Date));$client = Start-Process -FilePath $exePath -wait}"

我这样做是因为出于某种原因,将我的位置设置为每小时下载数据的目录不起作用,我可以手动指向它。我可以看到 .exe 确实运行了,但没有结果。

是不是我表述不正确?还是我需要指定此 .exe 创建输出?它将天气数据写入 .txt。

顺便说一句,我对 powershell 的经验很少,我几乎不知道自己在做什么,但我只想运行这个 .exe,也许我会编写另一个来调用第三方应用程序将 .txt 转换为另一种格式。

答案1

如果可能的话,我建议在 powershell 中运行所有命令 - CMD/batch 有一些不同的解析规则,可能会导致问题,尤其是带引号的参数/路径和某些符号。话虽如此,您可以像这样正确运行命令:

powershell.exe -Command Start-Process -FilePath "C:\....\data\abcd_$(Get-Date -f MM-dd-HH)\MetOfficeParser.exe" -wait

Start-Process取代 'Call'/ &,因此可以删除

相关内容