Используя обратную косую черту к символам ESC в cmd.exe (руны управляют как пример),

Я вижу, что каре является зарегистрированным символом ESC.

Но, у меня есть пример, показывающий это для символа двойной кавычки, ^ не работает и необходимо использовать \

C:\>runas /user:Administrator "cmd /k dir \"%userprofile%\""

Почему то, что, и где это документируется?

6
задан 26.08.2015, 14:41

2 ответа

Один из примеров в RUNAS /? шоу тот синтаксис. Каре является символом ESC для CMD.EXE но в человеке Windows программы являются бесплатными реализовать свои собственные символы ESC и globbing.

4
ответ дан 07.12.2019, 15:28

\ знак заставляет интерпретатор интерпретировать следующий знак как символ вместо идентификатора.

Вы видите его много в коде также:

"Hello \"World\""

это интерпретируется как

Hello "World"

в Вашем примере, для передачи аргументов cmd, это должно быть включено в "". Но начиная с аргументов cmd содержит "(и это закончило бы корпус), они добавляются \. Если "" не был бы там, /k dir \"%userprofile%\" был бы интерпретирован как аргументы runas, не к cmd.

Причина, почему они включают %userprofile %, состоит в том, потому что это - переменная окружения и будет заменено текстом, который мог содержать пробелы, которые (по той же причине как выше) приведут аргумент cmd неправильный.

4
ответ дан 07.12.2019, 15:28

Теги

Похожие вопросы