我正在尝试通过powersheell / task scheduler运行我的控制台应用程序。
如果我打开PowerShell并手动运行。\ startReport.ps1就行了。控制台应用程序无法打开,只能在后台静默运行。
然而,当我通过任务计划程序创建任务时,它失败了......告诉我它已成功完成。但它没有。
有什么想法吗?
$r = Get-Date
$fileName = ".\Logs\" + $r.Date.Year + "-" + $r.Date.Month + "-"+ $r.Date.Day + ".txt"
.\MyApp.exe > $fileName
答案 0 :(得分:2)
以下是我在环境中执行此操作的方法,只需稍加修改即可。 我脚本中的代码如下。请注意,我使用绝对路径而不是相对路径,因为PowerShell将使用C:\ Windows \ System32作为默认路径启动,您可能无权在其中创建Logs文件夹和日志文件。
startReport.ps1脚本内容:
$r = Get-Date
$fileName = "C:\Data\Logs\" + $r.Date.Year + "-" + $r.Date.Month + "-"+ $r.Date.Day + ".txt"
& C:\Data\MyApp.exe > $fileName
请注意,我正在使用&执行exe的表示法。如果您使用&amp ;.也可以用任何命令替换它。你在做什么也是正确的。我建议使用绝对路径。
然后在任务计划程序中,我有以下命令:
PowerShell.exe -File "C:\Data\startReport.ps1"
我再次使用绝对路径来引用ps1文件。您可以为"程序/脚本"提供PowerShell.exe
;和-File "C:\Data\startReport.ps1"
用于"添加参数"任务计划程序的“操作”选项卡中的部分。
其他注意事项
答案 1 :(得分:0)
您的任务调度程序是如何配置的? 其中一种可能性是:
%SYSTEMROOT%\ SYSTEM32 \ WindowsPowerShell \ V1.0 \ powershell.exe
cd d:\ folderWithTheScript; \ TheScript.ps1
然后你可以使用相对于" d:\ folderWithTheScript" pathes