2016-01-27 4 views
0

Я запускаю новый скрипт python в офисе и, чтобы сделать этот запуск плавным, я также сделал пакетный файл, который его установит, и сделает его запущенным на пользователе входа в систему.Schtasks.exe не принимает пустые пробелы при задании пути к файлу

Я использую schtasks.exe запланировать задачу для этого, так вот что я пытаюсь запустить

schtasks /create /TN "fooname" /SC ONLOGON /TR "C:\foo - bar\fooscript.exe" /Delay 0005:00 

Я получаю ошибку является 0x80070002, который означает, что файл не может быть найден. После экспорта задачу я создал, я могу видеть, что он отделил первый и последний бит пути в

<Command>C:\foo</Command> 
<Arguments>bar\fooscript.exe</Arguments> 

Я попытался microsofts own help article, но не повезло. Я хочу запустить это без каких-либо аргументов в отношении fooscript.exe.

+0

Это дефис, проблема в том, что это символ переключения. –

+0

@bgalea Я подозревал, что дефис был частью проблемы здесь :) К сожалению, я не могу изменить имя папки, есть ли способ, как хранить это в переменной или использовать цитаты умным, чтобы игнорировать дефис? –

+0

Посмотрите, как есть амперсанд после foo в записи реестра (адаптировать для вашего руководства) 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Schedule \ TaskCache \ Tasks \ {34B086CE-B5DF-42E7-A815-87335E063F24}' , Попробуйте использовать команду 'reg', чтобы переписать ключ без &. –

ответ

0

Как МагУ указал, что я был в состоянии использовать короткое имя папки, которые могут быть доступны с

dir /x 

откинув именем, как «Foo ~ 1». Использование этого в моем пути заставило его работать.

Спасибо!

0

Извините, старый поток, но только что нашел обходной путь лучше, чем здесь. Поместите имя dir в переменную приглашения, а затем используйте команду var в команде.

SET fname="c:\path with spaces\target.exe" 
SchTasks [args] /TR %fname% 
Смежные вопросы