未使用Invoke-Expression参数

我有一个工作的、简单的批处理文件cmd。

D:\Software\MySoftware.exe --process MyConfig.tuc

当我试图在Powershell中使用Invoke-Expression或调用操作符”& “来复制时,代码执行了,但日志显示它没有接收到开关: –process MyConfig.tuc。

Invoke-Expression "D:\Software\MySoftware.exe --process MyConfig.tuc"

& D:\Software\MySoftware.exe --process MyConfig.tuc

编辑:我发现,如果你传递了.tuc文件的完整路径,命令就会成功。

Invoke-Expression "D:\Software\MySoftware.exe --process D:\Software\MyConfig.tuc"

解决方案:

我的问题是,为什么Invoke-Expression需要配置文件的完整路径,而批处理文件不需要。 正如 @compo 在评论中所说,这可能是由于 PS 或 cmd 在相对路径方面的工作方式的不同。

@compo提出了更中肯的意见,即Start-Process是一个更好的解决方案,我发现它确实如此。 它不仅可以工作,它的开关很适合我的需求,尤其是它Invoke-expression做的-wait是原生不做的(我无法确认它是否可以wait,网上有建议说可以)。

Start-Process -FilePath D:\Software\MySoftware.exe -WorkingDirectory D:\Software  -ArgumentList "--process MyConfig.tuc" -wait

给TA打赏
共{{data.count}}人
人已打赏
未分类

Angular BehaviorSubject没有从http调用中获取数据。

2022-9-8 21:05:23

未分类

MongoDB C# find.count()小于find.ToList().Count()。

2022-9-8 21:16:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索