2011-04-29 14 views
5

Estoy escribiendo una pequeña aplicación que genera el contenido de un archivo por lotes, utilizando SCHTASKS para crear tareas programadas. Sin embargo, simplemente no puedo hacer que la ruta del archivo funcione correctamente. Necesito otro par de ojos.Cómo citar adecuadamente la ruta del archivo con SCHTASKS

SCHTASKS /CREATE /TN "TASK1" /TR "\"C:\Program_Files\Spybot - Search & Destroy\SpybotSD.exe\" \AUTOCHECK \AUTOFIX \AUTOCLOSE" /ST 01:00:00 /SC Daily /RU MyUser /RP MyPass 

He mirado en otros hilos aquí, y documentación de MS, y creo que tengo que formó correctamente. Sin embargo, falla con la salida:

ERROR: Invalid syntax. Mandatory option '/sc' is missing.
Type "SCHTASKS /CREATE /?" for usage.
The system cannot find the path specified.

Podría seguir algunos consejos aquí.

Respuesta

8

tiene que escapar el símbolo de unión con un acento circunflejo como esto:

SCHTASKS /CREATE /TN "TASK1" /TR "\"C:\Program_Files\Spybot - Search ^& Destroy\SpybotSD.exe\" \AUTOCHECK \AUTOFIX \AUTOCLOSE" /ST 01:00:00 /SC Daily /RU MyUser /RP MyPass 
+0

En mi máquina (Windows 7), aunque el símbolo de intercalación ayudó a registrar la tarea, en realidad no se ejecutó. Sin embargo, agregar el interruptor '/ V1' hizo que todo funcionara como se esperaba:] – mousio

+0

Excelente, ¡muchas gracias! – Ducain

+0

dónde lo agregó/v1 – Raj

1

me gustaría utilizar% ProgramFiles (x86)%

Mi solución:

set taskrun="%ProgramFiles(x86)%\foo\bar.exe" 
schtasks /create /TN FooBar /TR \"%taskrun%\" /SC ONLOGON /RL HIGHEST /F 
+0

schtasks/Create/SC DAILY/TN abc/TR" \ "C: \ Documents and Settings \ All Users \ Desktop \ XXX.exe \" "/ ST 17:46 : 00. Ayudame con esta tarea no se está ejecutando – Raj

+0

@ZapSwami: ¿la tarea se registró? ¿Son correctos los permisos/credenciales? (exe está en Todos los usuarios) ¿El ['/ V1' cambiar] (http://stackoverflow.com/questions/5837761/schtasks-how-to-properly-quote-file-path/5850720#5850720) ayuda? – mousio

3

Vine a través de este problema y la forma en que lo resolví fue cambiando el orden en las opciones para crear el schtask como se explica en esta publicación http://billaking.blogspot.com/2010/11/c-sharp-windows-task-with-schtasks.html funcionó perfectamente.

StringBuilder commandLineParams = new StringBuilder(); 
commandLineParams.AppendFormat("/Create /RU SYSTEM /SC {0} /ST {1} /TN {2} /TR \"\\\"{3}\\\"", strScheduleType.ToUpper(), intTimeInterval, strTaskName, strProgramPath); 
Cuestiones relacionadas