Синтаксический разбор символов локального планировщика и командная строка
При разборе командной строки локальный планировщик использует стандарт синтаксического разбора с разделителями-пробелами. Это означает, что, если какой-либо параметр содержит пробел, то этот параметр необходимо заключить в кавычки. Некоторые параметры, например /start, всегда содержат пробел, поэтому их всегда необходимо заключать в кавычки. Другие параметры, например /exe and /cmd, могут содержать или не содержать пробел, поэтому иногда их необходимо заключать в кавычки, а иногда нет.
В приведенном ниже примере показана командная строка, для которой не требуются кавычки.
LocalSch.exe /exe=c:\windows\system32\cmd.exe
Далее приведен пример командной строки, для которой необходимы кавычки.
LocalSch.exe /exe="%ProgramFiles%\MyProgram\myprog.exe" /cmd="/apm /s /ro"
Заключение в кавычки параметров, уже имеющих кавычки
Если параметры, которые нужно передать в /cmd =, уже содержат кавычки, то необходимы тройные кавычки: одни кавычки необходимы для заключения в них всей строки, другие — для заключения в них значения в кавычках, а третьи — для самих значений в кавычках.
Ниже приведен пример командной строки, параметры которой необходимо заключить в тройные кавычки.
LocalSch.exe /exe="%ProgramFiles%\LANDesk\File Replicator\LANDeskFileReplicatorNoUI.exe" /cmd="""%ProgramFiles%\LANDesk\File Replicator\LDHTTPCopyTaskConfig.xml"" ""%ProgramFiles%\LANDesk\File Replicator\replicator.log"""
В указанной выше команде два параметра являются путями к файлам. Поскольку оба пути находятся в каталоге Program Files, пути имеют пробелы и должны быть заключены в кавычки, чтобы их можно было использовать в качестве параметров для LANDeskFileReplicatorNoUI.exe. В связи с этим каждый заключенный в кавычки параметр заключается во вторые кавычки, а затем вся строка заключается еще в одни кавычки.
Заключение в кавычки операторов переназначения
В кавычки необходимо также заключать любые переключатели, содержащие оператор переназначения. Операторы переназначения включают следующие символы: <, >, |. Переключатель /bw использует символ | или вертикальную линию. Важно помнить, что символ | используется в командной подсказке для передачи выходных данных другому приложению. Чтобы этот символ не подвергался разбору командной строкой, его необходимо заключить в кавычки.
Ниже приведен пример команды, использующей параметр /bw с символом |, который необходимо заключить в кавычки.
LocalSch.exe /exe=C:\ldclient\myprogram.exe /cmd="/apm /s /ro" /bw="LAN|server"