使用复杂参数在Powershell中运行可执行文件

时间:2017-10-25 14:26:15

标签: powershell csv batch-file awk

我正在努力将旧的批量文件记录脚本转换为Powershell。创建数据不是一个主要问题,但我在最后一步遇到了问题。旧批处理文件中的最后一步将丑陋的CSV转换为更漂亮且易于使用的CSV。这是使用旧的AWK脚本和gawk命令完成的。我很满意这一步,但我希望它能在Powershell脚本中执行。

命令看起来像这样:

<gawk.exe> -f <path>\PrepareReport.awk <original.csv> >> <final.csv>

我尝试过不同的方法来调用gawk和参数。 Invoke-Expression,Invoke-Command等。似乎无法正常运行此命令。任何见解或想法将不胜感激。

谢谢!

编辑:在所有评论之后,我找到了&amp;是实现这一目标的选择。 Start-Process cmdlet导致致命错误。但有一件奇怪的事情仍在发生。由于某种原因,生成的CSV文件无法在Excel中正常显示。即使生成的文件看起来完全正常,Excel也不会使用相应的逗号分隔符显示它。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以随时使用Start-Process。

Start-Process -NoNewWindow -Wait -PassThru -FilePath <gawk.exe> -ArgumentList "-f <path>\PrepareReport.awk <original.csv> >> <final.csv>"

它有点罗嗦,但非常可定制且非常灵活。