将操作参数传递给宏VBA中的SchTasks

时间:2019-06-14 14:56:36

标签: excel vba powershell

我试图找到一种在任务计划程序中创建任务的方法,该任务将在以下提到的日期运行,并使用命令执行Powershell

strCommand = "schtasks /create /tn HasanChTesst /tr PowerShell.exe /sc weekly /d wed /st 13:00:00"
Set WsShell = CreateObject("WScript.Shell")
WsShell.Run (strCommand)

我尝试按如下所示将参数添加到powershell旁边,但出现编译错误

strCommand = "schtasks /create /tn HasanChTesst /tr "PowerShell.exe Out-File Hello.txt"  /sc weekly /d wed /st 13:00:00"
Set WsShell = CreateObject("WScript.Shell")
WsShell.Run (strCommand)

有人对此有想法吗?

谢谢

注意:我知道我可以直接运行powershell ..但是我想运行任务调度程序,并让调度程序运行带有参数的powershell。

1 个答案:

答案 0 :(得分:2)

请勿在家尝试...请参阅以下原因:

要使用双引号-"",以便转义单引号"

Sub WithParams()

    Dim command As String
    Dim wsShell As Object

    command = "schtasks /create /tn HasanChTesst /tr ""PowerShell.exe Out-File Hello.txt""  /sc weekly /d wed /st 13:00:00"
    Set wsShell = CreateObject("WScript.Shell")
    wsShell.Run (command)

End Sub

因为这样,您将需要此:

为了从预定任务中删除任务,这是代码:

Sub RemoveTask()

    Dim wsShell As Object
    Set wsShell = CreateObject("WScript.Shell")
    wsShell.Run ("powershell -noexit Unregister-ScheduledTask -TaskName ""HasanChTesst""")

End Sub