Como posso filtrar uma string com um caractere curinga e enviá-la para outro arquivo de texto com uma modificação?

0

Desejo desinstalar todos os drivers de terceiros de uma imagem do Windows usando o DISM, mas parece que ele não aceita curingas. Isso significa que eu teria que desinstalá-los todos manualmente, o que eu quero evitar. Até agora, criei uma lista de todos os drivers em um formato de tabela, como mostra a imagem abaixo:

Eu tenho duas opções, até onde eu posso ver:

  • Use o subsistema bash no Windows 10
  • Use o PowerShell.

Eu só me preocupo com a parte oem * .inf . No entanto, além de apenas filtrar apenas o oem * .inf text, gostaria de alterá-lo para ser assim:

/Driver:oem100.inf /Driver:oem101.inf /Driver:oem102.inf /Driver:oem103.inf

etc, em linha e não em formato de lista.

Eu pensei que poderia fazer isso com o grep, mas minhas habilidades no Linux não são tão boas quanto eu gostaria que fossem. Usando o PowerShell parece promissor, mas novamente eu não sou avançado o suficiente ainda. Como posso conseguir isso?

    
por David Prentice 11.11.2016 / 01:50

1 resposta

1

Aqui está uma solução do PowerShell:

$File = "Drivers.txt"
$RegEx = '^oem\d{1,3}.inf'
$Drivers = Select-string $File -Pattern $regex|%{[string]$_.Matches}
$ofs = " /Driver:"
$String="/Driver:"+"$Drivers"
$String | Out-File DriverString.txt

Um pequeno arquivo de teste forneceu este resultado:

/Driver:oem100.inf /Driver:oem101.inf /Driver:oem102.inf /Driver:oem103.inf /Driver:oem104.inf /Driver:oem105.inf /Driver:oem106.inf /Driver:oem107.inf /Driver:oem108.inf /Driver:oem109.inf
    
por 11.11.2016 / 02:54