Ao estender o menu de contexto do shell do Windows (por exemplo, para adicionar um prompt 'Abrir comando aqui' nos diretórios), uma chave 'comando' precisa ser criada no registro.
O valor dessa chave de 'comando' aparentemente pode ser qualquer linha de comando válida.
Quero saber quais 'variáveis especiais' estão disponíveis para uso dentro desta linha de comando.
Por exemplo, eu uso o seguinte comando para abrir uma janela do cmd no menu de contexto de um diretório (*):
cmd.exe /e:on /f:on /s /k pushd "%V"
Não consigo encontrar nenhuma referência ao que %V
realmente significa ou qual é a lista completa de tais variáveis.
(*) As seguintes chaves do Registro são criadas para isso:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmdshell]
@=Open Command Prompt Here"
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\cmdshell\command]
@="cmd.exe /e:on /f:on /s /k pushd \"%V\""
%W
: nem sempre está disponível e emitirá uma mensagem de erro enigmática se usada em seucommand
valor. Por exemplo, chamar o item de menu de contexto no menu de contexto de uma unidade ou de uma pasta de biblioteca não inicializará essa variável. Evite seu uso fora da entrada do menu de contexto de um manipulador de arquivos.%~
? Eu só recebo um erro.%V
deve ser usado se você quiser o nome do diretório, ie. quando você deseja adicionar seu comando no menu de contexto ao clicar em segundo plano, não em um único arquivo ou nome de diretório.%L
não vai funcionar nesse caso.Essa pergunta me intrigou, então eu fiz algumas experiências. Eu tenho uma pasta
C:\iso
. O que encontrei ao clicar com o botão direito do mouse:I
retornou um conjunto diferente de números a cada tentativa.H
foi sempre 0 eS
foi sempre 1.D
,L
eV
estavam todos a pasta de destino.W
era o pai da pasta de destino. Alguém quer expandir isso?FYI: Usei as seguintes entradas do Registro para testar:
(Os caracteres `foram usados para delimitadores)
fonte
Aqui estão os argumentos / sintaxe para o cmd.exe
/k
executa o comando especificado pela seguinte seqüência de caracteres para executar o comandopushd %V
e, como o único argumento que pushd aceita é um caminho, segue-se que%V
uma variável entregue pelo explorer que contém o caminho da pasta clicou com o botão direito do mouse.fonte
Na verdade, é difícil encontrar o que% V significa ou uma lista dessas variáveis. Através do Google, descobri que também parece existir um% L. Não acho que você precise passar mais de% V ou% L para um prompt, pois não há outras informações úteis. Onde% V pode ser o nome do diretório,% L pode ser um local para um arquivo. Fazer um 'eco' pode ajudar em caso de dúvida ...
fonte