3

Кажется, параметр --directory неэффективен при использовании с --action=runas при использовании cygstart . Например:

cygstart --action=runas --directory=`cygpath -wa $PWD` cmd.exe /k dir

Ожидаемый вывод - это содержимое рабочего каталога оболочки cygwin, из которой была запущена команда. Вместо этого он выводит содержимое C:\Windows\system32 , начального пути по умолчанию для административной командной строки, полностью игнорируя параметр --directory . Напротив, --action=runas дает ожидаемый результат, но, очевидно, не с повышенными разрешениями.

Ниже приведен эффективный обходной путь:

cygstart --action=runas cmd.exe /k "cd /d $(cygpath -wa $PWD) & dir"

Это работает, но было бы неплохо, если бы ключ --directory работал так, как задумано. У кого-нибудь есть понимание этого? Это ошибка с cygstart , или с тем, как работает UAC/Windows?

1 ответ1

2

Видимо, это не ошибка - это ожидаемое поведение. Сами сопровождающие Cygwin ожидают, что вы будете делать то же, что и в обходном пути.

Для меня это, конечно, похоже на ошибку. В конце концов, это один из случаев, когда мне все равно, как дела, если они делают то, что обещали. И --directory просто не работает в этом сценарии, без какого-либо предупреждения или чего-либо еще. (У меня нет желания защищать эту точку зрения в списке рассылки.)

Так что да, к сожалению, нет другого пути , кроме cd - диска ать в целевую папку.

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