2017-02-27 15 views
0

WindowsタスクスケジューラでXMLファイルを文字列として読み込み、正常に実行できるようにタスクを登録しようとしています。さらに、{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> 

私は(登録-ScheduledTaskコマンドレットを除く)私のPSスクリプトを実行すると、私は{plname}が置き換えられて見ることができます。私は「登録-ScheduledTaskの」コマンドレットを実行する際 font is small but you can see {plname} is replaced by openNotepad

は、今ではタスクを正常に登録するが、タスクスケジューラの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

関連する問題