Resposta:
Eu tenho duas ferramentas diferentes para isso em link
Para tornar isso uma resposta legítima, incluirei o mais simples:
#!/bin/bash
# From: https://gist.github.com/RichardBronosky/c61465ed897c2f10e9bf16704d1d9af9
# This works from both WSL/bash and powershell!
powershell.exe -command "& (Get-ItemProperty 'HKCU:Control Panel\Desktop').{SCRNSAVE.EXE}"
Isso obterá o valor da [terrivelmente chamada] SCRNSAVE.EXE
propriedade do registro. Esse valor é um caminho completo para um arquivo *.scr
e, portanto, você pode (e eu) informar ao powershell para executá-lo como um comando.
Notas / Opinião:
Esta é uma demonstração bastante sucinta de como o powershell retorna objetos (completo com métodos, acessadores, etc.) em vez de fluxos de texto como bash.
Aqui, o Get-ItemProperty
retorna um objeto [do tipo: System.Management.Automation.PSCustomObject] que possui muitas propriedades. Nós acessamos uma única propriedade com a notação de ponto conveniente. (Eu tenho que admitir que mesmo que eu possa escrever o sed diretamente em um script sem testá-lo no CLI, é melhor.) Existe uma ferramenta útil para explorar objetos que é recomendado por um blogueiro de technets da Microsoft . Infelizmente, instalá-lo agora requer a opção -AllowClobber
. ( Saiba mais aqui .) Uma alternativa [plana] um pouco menos conveniente é Get-Member
. (Apenas pipe saída para ele.)
Tendo um século 1/4 de experiência bash, o powershell é muito estranho, mas também um pouco refrescante para se trabalhar. Pense nisso como shell script em um ambiente mais pythônico e não é terrível ... exceto por aquelas barras invertidas.