2017-02-27 42 views
0

我想通过读取一个XML文件作为字符串,并能够成功地做到这一点,在Windows任务调度程序中注册一个任务,另外我想要做的是替换{plname}(这是存在于XML中)与任务名称。使用PowerShell替换管道名称

<Exec> 
    <Command>notepad.exe</Command> 
    <Arguments>-Command "&amp;{ &amp; "./pl.ps1 {plname} run" }"</Arguments> 
<WorkingDirectory>C:\Windows\System32\Tasks\Power</WorkingDirectory> 
</Exec> 

运行我的PS脚本(不包括注册,ScheduledTask cmdlet的),我可以看到{} plname被替换。 font is small but you can see {plname} is replaced by openNotepad

现在,当我运行“注册-ScheduledTask” cmdlet将它注册成功的任务,但任务计划程序的GUI它没有显示之前完成更换。 {plname} was replaced earlier with openNotepad, but has reverted back to its previous state.

希望我已经说清楚了。 这是我的脚本,以防万一。

$taskName = "openNotepad" 
    $taskTemplate = Get-Content (join-path "C:\Users\ACER\Desktop\POWERSHELL" "task-scheduler-template.xml") | Out-String 
    $taskTemplate -replace "{plname}", $taskName 

    Register-ScheduledTask -Xml $taskTemplate -TaskPath "\Power\" -TaskName $taskName 

回答

1

你忘了更新替换值$ taskTempate变量。

$taskTemplate = $taskTemplate -replace "{plname}", $taskName 
+0

它的工作,谢谢:) – Ricky