我创建了一个Powershell脚本,我从批处理文件调用,当我调用批处理文件时一切正常。我遇到的问题是我需要将批处理文件设置为在任务计划程序中运行。它开始很好,但它一直挂起,因为任务调度程序从未说过"操作成功完成" (为0x0)。相反,它停留在"任务当前正在运行" (0x41301)。请指教,我知道这不是调用Powershell脚本的最理想方式,但对于我们的环境和脚本知识有限,它对我们来说是最好的。
答案 0 :(得分:0)
您应该只使用任务计划程序来运行PowerShell。
创建一个新任务,转到Actions
标签,然后选择New...
,在这个新窗口中,您可以运行任何程序,例如您从cmd运行某些程序。
在Program/script
方格内,您只需添加Powershell.exe
和Add 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)