1

Я написал сценарий .cmd, который хотел бы запускать каждый день в 7:30. Прямо сейчас, если я запускаю задачу вручную, она может запустить все команды, которые я там ввел (некоторые из которых являются вспомогательными .cmd-сценариями), потому что программа запускается из местоположения родительского сценария. При тестировании, чтобы увидеть, как планировщик задач Window выполняет сценарии, текущая переменная каталога выглядит как system32 (где находится cmd.exe), поэтому, когда мой сценарий пытается найти какой-либо из вспомогательных сценариев, происходит сбой, потому что они не расположены в системе32.

Я понимаю, что в начале моего родительского сценария я могу просто поместить:

cd PathToParentScript

Но я бы хотел этого избежать, поскольку я планирую передать этот сценарий другим пирам и хочу хранить все мои переменные конфигурации в одном месте (а именно, один из моих вспомогательных сценариев).

Можно ли сделать так, чтобы планировщик задач запускал сценарий из расположения этого сценария, в отличие от того, где находится cmd.exe? Если так, как бы я это сделал?

У меня Windows 10.

2 ответа2

1

Сконфигурируйте ваш скрипт для переключения на текущее местоположение реального скрипта, добавив в начале следующую команду:

CD /d %~dp0

Который будет расширяться до:

CD /d drive:path_of script

Примечание. Параметр /D позволяет CD переключаться на диск скрипта, если он отличается от текущего диска.

Синтаксис %~dp0 является модификацией переменной %0 (которая является именем файла скрипта) модификатором ~dp , где d - диск, а p - путь.

0

Опция, в которой вы устанавливаете действие, также должна иметь поле с надписью «Начать с (необязательно)». Задайте для этой папки папку, в которой вы хотите запускать ваш скрипт.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .