質問

I'm trying to schedule a task on Windows, and unfortunately, it doesn't work! The task is created but not correctly.

When I look into task's parameters, it says:

PROGRAM: C:\Program
ARGUMENTS: Files(x86)\AppName\executable.exe

This is how I proceed:

[Run]
Filename: "schtasks.exe"; Parameters: "/create /tn TaskName /sc MINUTE /mo 10 /tr ""{app}\{#MyAppExeName}""";

And I don't know why it doesn't work, doubles quotes should fix the "spaces problem"

Any ideas?

役に立ちましたか?

解決

This problem is known and is described in this knowledge base article. You will need to enclose the file name between combination of backslash and quotation marks. That article describes:

Cause:

This problem occurs if the path of the scheduled task contains a space. For example, this problem occurs if you create a schedule for the following task by using Schtasks.exe:

 "c:\foldername containing spaces\task.bat"

Workaround:

To work around this problem, enclose the path portion of the task (not including arguments or switches) between backslash (\) and quotation marks (") character combinations, for example \". Enclose the complete path of the task (including arguments or switches) between quotation marks as usual when you create a path or command that contains spaces.

For example, the following example task does not run when you schedule it:

 schtasks /create /tn "my task" /tr "c:\foldername containing spaces\script.bat arguments" /sc once /sd 07/29/2003 /st 10:01

However, when you enclose the path of the task between the backslash and quotation marks character combinations as in the following example, the scheduled task runs successfully:

 schtasks /create /tn "my task" /tr "\"c:\foldername name containing spaces\script.bat\" arguments" /sc once /sd 07/29/2003 /st 10:01

So in your case it could be:

[Run]
Filename: "schtasks.exe"; Parameters: "/create /tn TaskName /sc MINUTE /mo 10 /tr ""\""{app}\{#MyAppExeName}\""";

他のヒント

Late to the party, but as mentioned in this SO answer, you could try to simply add single quotes around your /TR parameter, which would result in

Parameters: "/create /tn TaskName /sc MINUTE /mo 10 /tr '"{app}\{#MyAppExeName}"'";

That might be a bit easier than juggling backslashes.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top