任务计划程序运行批处理文件以调用powershell脚本

时间:2016-08-24 17:52:36

标签: windows powershell batch-file task scheduler

我创建了一个Powershell脚本,我从批处理文件调用,当我调用批处理文件时一切正常。我遇到的问题是我需要将批处理文件设置为在任务计划程序中运行。它开始很好,但它一直挂起,因为任务调度程序从未说过"操作成功完成" (为0x0)。相反,它停留在"任务当前正在运行" (0x41301)。请指教,我知道这不是调用Powershell脚本的最理想方式,但对于我们的环境和脚本知识有限,它对我们来说是最好的。

2 个答案:

答案 0 :(得分:0)

您应该只使用任务计划程序来运行PowerShell。

创建一个新任务,转到Actions标签,然后选择New...,在这个新窗口中,您可以运行任何程序,例如您从cmd运行某些程序。

Program/script方格内,您只需添加Powershell.exeAdd arguments (optional)个powershell参数。这将与您在普通命令行中输入的内容相同:

powershell <arguments>

因此,如果您想运行保存在磁盘中的脚本,只需将其放入参数列表中:

C:\LocalisationOfScript\script.ps1 "argument 1" argument2

如果您想要更多选项,只需在此之前添加常用参数:

-windowstyle hidden -executionpolicy bypass C:\LocalisationOfScript\script.ps1 "argument 1" argument2

即便如此:

-windowstyle hidden -executionpolicy bypass if (Test-path C:\script\script.ps1) { C:\script\script.ps1 "argument 1" argument2 } else { return -1 }

最后:

Start-Process Powershell.exe -argumentslist "-a -b -c copy" -windowstyle hidden -wait -erroraction stop

你甚至可以添加try,catch到最后一个例子。

答案 1 :(得分:0)

感谢您的所有评论,我研究了您的建议并遇到了退出命令,我忘了添加到我的脚本的末尾,所以当我调用我的脚本时,它会在我应用exit命令后交换打开会话程序运行的脚本没有错误(敲木头)感觉修复,在我关闭并重新打开任务计划程序后,最后一次运行的消息变为(0x0)