cygstart - o comutador de diretórios é ignorado ao usar --action = runas

3

Parece que a opção --directory é ineficaz quando usada com --action=runas ao usar cygstart . Por exemplo:

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

A saída esperada é o conteúdo do diretório de trabalho do shell cygwin do qual o comando foi executado. Em vez disso, ele exibe o conteúdo de C:\Windows\system32 , o caminho inicial padrão para um prompt de comando administrativo, ignorando completamente a opção --directory . Por outro lado, omitir a opção --action=runas fornece a saída esperada, mas obviamente não com permissões elevadas.

O seguinte é uma solução eficaz:

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

Funciona, mas seria bom se a opção --directory funcionasse como pretendido. Alguém tem alguma ideia disso? É um bug com cygstart ou com o funcionamento do UAC / Windows?

    
por ZeroKnight 24.02.2014 / 09:25

1 resposta

2

Aparentemente, não é um bug - é o comportamento esperado . Os próprios mantenedores do cygwin esperam que você faça exatamente o que você fez na solução alternativa.

Para mim, certamente parece um bug, no entanto. Afinal de contas, este é um dos casos em que mal me preocupo com como as coisas são feitas, desde que elas cumpram o que prometeram. E --directory simplesmente não funciona neste cenário, sem qualquer tipo de aviso ou qualquer outra coisa. (Eu realmente não tenho coragem de defender esse ponto de vista na lista de discussão.)

Então, sim, infelizmente, não há outro caminho além de cd ing na pasta de destino.

    
por 07.10.2014 / 09:15