Мы планируем задачу программно. Однако исполняемый файл, который должен быть запланирован, может быть установлен по пути с пробелами. то есть c: \ program Files \ folder \ folder \ folder program \ program.exe
Когда мы указываем этот путь в качестве параметра для Планировщика Tasjk, он не запускается, потому что не может найти исполняемый файл. Очевидно, его необходимо заключить в кавычки (").
Проблема, с которой мы сталкиваемся, заключается в том, что даже когда мы заключаем путь в кавычки, когда передаем его в качестве параметра (cmd + "\" + path + "\"), он все равно не включает кавычки в используемый путь чтобы запланировать задачу.
Кто-нибудь знает, как заставить кавычки быть включены в путь?
РЕДАКТИРОВАТЬ: Ответ на комментарий:
У нас была та же идея, и вот проблема. Формат ~ 1 основан на индексе папки, так что, если, скажем, у вас были эти 3 папки:
Program Applications
Program Files
Program Zips
тогда путь будет: progra ~ 2
Теперь, если вы скажете, что таких папок более 10, путь может выглядеть следующим образом: progr ~ 12.
Теперь нельзя сказать, что это не жизнеспособное решение, но необходимость подсчитывать папки, чтобы найти правильную, а затем использовать индекс для построения пути, является немного громоздкой и не очень чистой ИМО.
Мы надеемся, что есть лучший способ.
РЕДАКТИРОВАТЬ 2: Добавлен соответствующий фрагмент кода
Вы просили код: вот как мы строим строку Args, которую мы передаем планировщику:
string args = "/CREATE /RU SYSTEM /SC " + taskSchedule + " /MO " + taskModifier + " /SD " + taskStartDate + " /ST " + taskStartTime + " /TN " + taskName + " /TR \"" + taskSource + "\"";
где taskSource - путь к приложению.