Estou trabalhando com Windows-10.
Acabei de trabalhar bastante para obter informações do ShortSha nos detalhes de um arquivo compilado. Agora eu gostaria de copiar essas informações para a área de transferência, mas isso parece não funcionar, como você pode ver nesta captura de tela:
Como você pode ver, posso selecionar as informações, mas não posso copiá-las para a área de transferência, enquanto gostaria de copiar o ShortSha para encontrar essas informações de volta no meu sistema de controle de versão Git-Extensions.
No que diz respeito à minha versão do Windows, este é o resultado do winver
comando:
Para sua informação: Tenho certeza de ter trabalhado com uma versão do Windows onde era possível copiar essas informações (que era uma versão do Windows Server ).
Edit:
Como tenho certeza de ter feito isso em outro ambiente Windows, gostaria de saber o nome exato desse recurso e um exemplo de um ambiente Windows. Assim, eu poderia começar a procurar um patch.
Edit2: observação sobre o PowerShell
No Powershell, lancei o seguinte comando, que é muito promissor:
Get-Item "C:\Directory\Application.dll").VersionInfo.ProductVersion
Caso eu prossiga com esta solução, eu precisaria saber:
- Como usar esse resultado como entrada para copiar para a área de transferência (
Set-Clipboard -Value Get-Item "C:\Directory\Application.dll").VersionInfo.ProductVersion
não funciona) - Como integrar isso no menu de contexto do Windows (clique com o botão direito e inicie o comando nesse arquivo)
Edit3: comentário sobre o Windows Server
Descobri que estava trabalhando no Windows Server, usando esse recurso. É possível que esse recurso não funcione em uma versão do Windows-10? Se não, existe algum patch disponível para fazer isso funcionar?
Seu PowerShell estava quase correto, faltando apenas um par de parênteses:
Para usá-lo no menu de contexto, crie um
.ps1
arquivo de script com o seguinte conteúdo. O meu foi armazenado emC:\Temp\test.ps1
.Agora copie o texto a seguir em um
.reg
arquivo e clique duas vezes nele para importar para o registro. Ele criará uma ação de menu de contexto chamada "Obter versão da DLL" e usará o script acima (certifique-se de definir o caminho correto para o script no texto abaixo, com duas barras invertidas dentro do nome do arquivo):A nova entrada do menu de contexto pode ser usada imediatamente.
Não posso oferecer muito, já que seu comando está quase correto, você errou apenas por um colchete esquerdo, mas posso dizer como fazer o processamento em lote.
O acima obtém as informações desejadas,
Set-Clipboard
aceita argumentos em pipeline, para que você possa canalizar a saída para o cmdlet:Você também pode usar aliases para tornar o comando mais curto:
gi
é um alias deGet-Item
.Por padrão,
Set-Clipboard
limpa a área de transferência atual, se você deseja manter a área de transferência atual, use-Append
switch.Suponho que você queira obter as versões de várias dlls, você pode usar
Get-ChildItem
para listar todas as dlls dentro do diretório:Alias:
Para obter as versões de cada dll:
Alias de
ForEach-Object
é%
Obter o nome e a versão em uma string:O acima cria uma matriz de strings como esta:
Para unir esse array em uma string gigante delimitada por novas linhas:
Por fim, cole tudo isso na área de transferência:
Embrulhe tudo isso em uma função:
Exemplo de uso:
Editar
Atualizado por comentário,
clip
não é um alias deSet-Clipboard
, então corrigi o comando alias para torná-lo geralmente aplicável.Editar 1
Corrigidos vários erros de digitação no código. Eu escrevi tudo isso em um telefone para não ter a chance de executá-lo, houve um erro de digitação no primeiro comando para obter os nomes e copiei e colei esse comando nos comandos subsequentes, não notei até agora .
Você pode tentar usar o botão de tela de impressão no seu teclado. Ou simplesmente use qualquer software de terceiros, como o Share X. Em seguida, use o OCR para converter em texto.
Se você quiser fazer isso por meio do PowerShell e do menu de contexto para arquivos, faça o seguinte:
Abra
regedit
e navegue até a seguinte chave:HKEY_CLASSES_ROOT\*\shell
se você for administradorHKEY_CURRENT_USER\Software\Classes\*\shell
se você é um usuário normaladicione uma nova chave
shell
e nomeie-a como você deseja que sua entrada do menu de contexto se pareça (por exemploCopyProductVersion
)adicione uma nova chave chamada
command
sob a chave que você acabou de criaredite a
(Default)
propriedadecommand
e insira isso e clique em ok:Agora você deve ter uma nova entrada de menu de contexto que copia ProductVersion em sua área de transferência.
Você pode obter os detalhes do arquivo usando o PowerShell; funciona no Windows 10 também:
Por exemplo, para obter as informações do arquivo para
Autoruns64.exe
, execute:Em relação à adição do menu de contexto, o usuário SimonS parece ter abordado essa parte.