Al configurar una tarea programada, para la sección de acción, intento acceder a una variable de entorno para la ubicación del ejecutable que deseo ejecutar. Esto se debe principalmente a que en una máquina el ejecutable podría estar en C: en otra podría estar en D: he verificado que si uso una ruta codificada, mi tarea programada se ejecuta, pero si cambio la acción para apuntar a "%MyAppPath%\MyApp.exe"
la tarea no comenzará a sufrir un fallo de lanzamiento. He verificado que la variable de entorno está configurada.
¿Es posible dentro de la parte de acción (y directorio de trabajo) de la programación de tareas hacer referencia a una variable de entorno? Mi sintaxis es incorrecta.
En una nota al margen, pensé en llamar a un archivo BAT y hacer referencia a la variable de entorno allí, pero eso no me resuelve nada, ya que el problema principal es saber si la aplicación (y el archivo bat) también está en C: o D: unidades: dentro de la unidad, la ruta es la misma.
ACTUALIZACIÓN : Resulta que puedes usarlos con un reinicio de la máquina, pero tal vez hay una mejor manera
fuente
Pensé que podría hacer referencia a variables de entorno desde el Programador de tareas, pero después de haberlo intentado, no parece que pueda.
La única excepción parece ser,
%PATH%
¿sería posible agregar suMyAppPath
valor a la%PATH%
colección en cada máquina y luego simplemente llamarMyApp.exe
desde el programador de tareas, donde la máquina podrá resolver la ruta totalmente calificada según sea necesario?fuente
%~d0
se expandirá a la letra de unidad de donde se encuentra el archivo por lotes. (%~dp0
para unidad + directorio, etc. )fuente
La respuesta de tsvayer no funcionó para mí, en una computadora con Windows 7, pero me señaló en la dirección correcta. El Programador de tareas parece ser un servicio en mi computadora; su nombre es
Schedule
; el nombre para mostrar es el Programador de tareas .Además de reiniciarlo desde la MMC de servicios , se puede reiniciar con los siguientes
wmic
comandos ejecutados desde una ventana del símbolo del sistema (con privilegios de administrador):Por supuesto, también puede reiniciar el servicio usando
sc
:Basado en prueba y error, parece suficiente deshabilitar y luego volver a habilitar una sola tarea, si eso es todo lo que necesita afectar:
fuente
Ampliando la respuesta de Grawity, utilizo un proceso de dos pasos. Esto me permite usar la ruta en otras declaraciones cuando sea necesario.
NOTA:
pushd
cambia la unidad y el directorio. Y si querías estar limpio,popd
cuando hayas terminado.fuente