schtask
PowerShellでコマンドを使用しています。発生する問題は、program / script引数にが含まれC:\Program Files\
ている場合、パスが正しいと見なされ、パスC:\Program
の残りの部分が引数であると見なされることです。"
pre-fieldとpost-fieldを使用してエスケープしようとしましたが、違いはありませんでした。どうすればこれを達成できますか?ユーザーがパスをインストールすると変更される可能性があるため、パスをハードコーディングできません。
私はこれをWindows7x64で作成していました。タスクOKが作成され、スクリプトが返されます。ただし、タスクスケジューラ、タスクのプロパティ、アクションの順に表示し、を押すとedit
、プログラムがC:\ Programとして表示され、残りが引数として表示されます。
脚本:
$folder = Split-Path $MyInvocation.MyCommand.Path -Parent
$app = "\Demon.DatabasePurge.exe"
$exe = $app.Insert(0, $folder)
schtasks /create /tn "Demon Purge Job" /sc daily /st 00:00:00 /tr $exe
これが私が試したことです:
$folder = Split-Path $MyInvocation.MyCommand.Path -Parent
$app = "\Demon.DatabasePurge.exe`""
$exe = $app.Insert(0, $folder)
$exe2 = $exe.Insert(0, "`"")
schtasks /create /tn "Demon Purge Job" /sc daily /st 00:00:00 /tr $exe2