0

我正在使用 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 无法复制操作的原因吗,当它被传递给上面的计划任务时?任何解决方法/解决方案将不胜感激。

4

1 回答 1

0

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

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

基于上述操作的计划任务执行其打算执行的操作。

PS 当 excel 文件路径包含空格字符时,需要在 excelFile 参数周围加上三引号。例如,如果 excel 文件路径是“C:\MyUser\some random file.xlsx”,则 Excel 会尝试打开 3 个名为“some”、“random”和“file.xlsx”的文件。使用三引号解决了这个问题。

于 2022-01-23T20:32:52.813 回答