【发布时间】:2019-07-20 10:25:18
【问题描述】:
我有一个可以生成 JSON 文件并将其转换为 CSV 的工作 PowerShell 脚本。通过 ISE 手动执行时运行良好。但是,我注意到当我通过任务计划程序执行脚本时,JSON 文件的生成工作正常,但不知何故跳过了它转换为 CSV 的部分。我正在使用提供给我的 .bat 文件将 JSON 转换为 CSV,我只是在我的 PS 脚本上调用该 .bat。
我在某处读到这可能是因为我试图在没有交互式会话的情况下启动一个进程,并且可以通过选中“仅在用户登录时运行”来解决此问题,但我仍然得到相同的结果结果。
$path = "C:\Apps\ActiveMQanalysis\ConvertJsonFiletoCSV.bat"
Start-Process -FilePath $path
开始-睡眠-5秒
编辑:这是批处理文件的内容:
"C:\Program Files\Java\jdk1.8.0_181\bin\java" -cp lib* de.znt.activeMqAnalysis.BrokerStatistics C:\Apps\brokerResults\
编辑:正如大多数用户在这里指出的那样,我确实在 .bat 文件上添加了一些日志记录,以查看错误来自何处。事实证明,它给了我一个错误,它无法找到或加载主类de.znt.activeMqAnalysis.BrokerStatistics。
【问题讨论】:
-
powershell 可以将 JSON 文件转换为 CSV。您是否尝试过查看 PoSh 中的 CSV 和 JSON cmdlet?
-
可以粘贴bat文件的内容吗?
-
@Lee_Dailey 我认为我使用的 JSON 文件转换器是专门为我们的需要而格式化的。这就是为什么我需要运行那个 .bat 文件来进行转换的原因。
-
@Moerwald 我已更新问题以包含 bat 文件的内容。
-
听起来像是权限问题(检查在任务计划程序中设置了哪些用户来运行进程)......但看起来真的很奇怪,你正在使用 PS 运行 BAT,调用 Java库,完成 PS 已经在本地完成的事情。
标签: powershell