如何直接从 Powershell 脚本打开 Excel 文件?

How to open an Excel file directly from a Powershell script?

我使用的是 Powershell 版本 7.2.1

当我在 Powershell 上 运行 下面的命令时,它工作正常,即启动 Excel 并打开目标 Excel 文件。

& 'PATH_TO_EXCEL_EXE' 'PATH_TO_TARGET_FILE'

然而,当我将此命令传递给计划任务时,Excel 已启动但目标文件未打开。有关我的 Powershell 脚本的更多详细信息:

$action = New-ScheduledTaskAction -Execute "& 'PATH_TO_EXCEL_EXE' 'PATH_TO_TARGET_FILE'"
...
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "myTask"
# The line below is for testing purpose, to see if my scheduled task can launch correctly.
Start-ScheduledTask -TaskName "myTask"

有人能告诉我 Powershell 无法复制操作的原因,当它被传递给上面的计划任务时?任何 workarounds/solutions 将不胜感激。

根据 ZivkoK 的评论,我添加了一个解决问题的答案:

$excelExePath = ...
$excelFile = ...
$action = New-ScheduledTaskAction -Execute $excelExePath -Argument """$excelFile"""

基于上述操作的计划任务执行其预期的操作。

P.S。当 excel 文件路径包含 space 个字符时,需要用三引号将 excelFile 参数括起来。例如,如果 excel 文件路径是“C:\MyUser\some random file.xlsx”,那么 Excel 会尝试打开名为“some”、“random”和“random”的 3 个文件“file.xlsx”。使用三引号解决了这个问题。