Pregunta

Tengo una aplicación a la que llama una tarea programada. Se trasladó de Windows Server 2003 a Windows Server 2008. En 2003, la aplicación se ejecutó en el directorio donde se encontraba el ejecutable. En 2008 Environment.CurrentDirectory (C #) informa que se está ejecutando en C: \ Windows \ System32. ¿Cómo configuro el directorio en ejecución? Estoy usando schtasks.exe para la implementación de la línea de comandos.

UPD : a través de la interfaz, parece ser el " Comience en (opcional) " campo en la pantalla de edición de acción.

UPD : Parece que usar el archivo XML puede ayudar, pero estoy buscando prescindir de él.

¿Fue útil?

Solución

Recientemente me encontré con el mismo problema. La forma en que lo resolví fue agregar el modificador / V1 al comando schtasks.

/ V1 crea una tarea programada compatible con vista previa y llena automáticamente el directorio Inicio en.

Otros consejos

Solo quería agregar detalles que sean válidos para Windows Server 2008 y 2012. Como muchas personas pueden entender mejor las capturas de pantalla, aquí hay una captura de pantalla:
ingrese la descripción de la imagen aquí

Para resumirlo. Cuando crea la acción para su tarea programada, tiene la opción de establecer & Quot; Iniciar en (opcional) & Quot; campo (redondeado en rojo en la captura de pantalla). Este será el directorio desde donde se desencadena su proceso.

¡Espero que esto ayude!

Puede establecer el inicio en el directorio utilizando el siguiente comando

La clave es \ en el modificador / tr.

SCHTASKS /Create /u username /p pswd /ru "NT AUTHORITY\SYSTEM"
  /rp /sc ONSTART /tn task-name /tr "\"D:\name-of-file-to-run\" "

Consulte mi respuesta a una pregunta similar , sobre cómo configurar el & Quot; Activar la computadora para ejecutar esta tarea ... & Quot; opción que solo está disponible desde la IU del Programador de tareas (y a través del XML), y no desde la línea de comando schtasks.exe /create.

Los detalles son:

  1. Cree su tarea a través de schtasks.exe /create /tn MyTask ...
  2. Exporte su tarea a XML a través de schtasks.exe /query /xml /tn MyTask > MyTask.xml
  3. Actualice este XML a través de XSLT o una búsqueda / reemplazo
  4. Reimportar (sobrescribir la tarea anterior) a través de schtasks.exe /create /tn MyTask /xml MyTask.xml /f

Los detalles están aquí .

Prueba cd /d "<WorkingDirectory>" & schtasks <SchtasksParams>

Cambie el directorio de trabajo y luego ejecute schtasks .

Espero que la gente vea esta respuesta para el enfoque XML (francamente, creo que es un método más limpio y hay una mejor documentación sobre qué parámetros puede establecer para configurar características específicas dentro de la tarea también) .

Paso 1: cree un archivo XML que establezca todas las configuraciones de tareas , varios lugares para obtener más información sobre elementos XML:

Paso 2: Específico para " donde " la tarea se ejecutará desde (como en el directorio de inicio, el script comenzará en la línea de comando, esto está directamente relacionado con la pregunta del OP ... Necesitará configurar el parámetro así ...

<?xml version="1.0" encoding="UTF-16"?> 
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> 
  <RegistrationInfo> 
    <Date>2012-08-19T16:49:14.6182</Date> 
    <Author>YOUR-COMPUTER-DOMAIN\YOUR-USERNAME</Author> 
  </RegistrationInfo>

    ... a bunch of other stuff in between here ....

  <Actions Context="Author"> 
    <Exec> 
      <Command>C:\PythonEXE\mini_program_test.exe</Command> 
      <Arguments></Arguments> 
      <WorkingDirectory>C:\Some\where\here\</WorkingDirectory> 
    </Exec>
  </Actions> 
</Task> 

Tenga en cuenta arriba que no hay comillas en el parámetro WorkingDirectory : cometí ese error anteriormente.

Paso 3: Dado que utilizará schtasks.exe para CREAR esta nueva tarea a través del XML, consulte aquí para obtener más información: https://msdn.microsoft.com/en-us/library/bb736357.aspx

Paso 4: en la línea de comandos de Windows, ejecutarás algo como esto (una vez que tu XML esté listo)

C:\>schtasks /CREATE /TN "TASK-NAME-HERE" /RU "YOUR-USERNAME" /RP "YOUR-PASSWORD" /XML C:\YOUR-XML-FILE-LOCATION\ready.xml

Espero que esto ayude un poco, ¡diviértete!

Utilice My.Application.Info.DirectoryPath en la aplicación sin necesidad de una configuración XML.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top