Batch: extrair alguns caracteres de uma string

1

Como posso extrair caracteres alfanuméricos apenas de uma string?

Exemplo: b:lbalbqsd1287/;:!,blbalbqsd1287

É possível com findstr ?

    
por Basj 03.05.2013 / 17:42

1 resposta

0

Eu acho que de alguma forma é possível fazer isso em lote. Eu não sei como e tenho certeza que é doloroso, não é sustentável e feio. Mas, como alternativa, você pode usar um vbscript para fazer o trabalho (também embutido e deve estar disponível em todos os sistemas operacionais).
Eu escrevi esse carinha aqui para o seu prazer :)

Option Explicit

Dim sInput, sOutput sInput = "b:lbalbqsd1287/;:!,"
sOutput = RegEXP_VBS(sInput) Call MsgBox (sOutput)
Function RegEXP_VBS(sIn) Dim oREGEXP, oResult, oMatch
Set oREGEXP = CreateObject("vbscript.regexp") oREGEXP.IgnoreCase = False oREGEXP.MultiLine = False oREGEXP.Global = True oREGEXP.Pattern = "[a-zA-Z0-9]"
Set oResult = oREGEXP.Execute(sIn) For Each oMatch in oResult RegEXP_VBS = RegEXP_VBS & oMatch.Value Next
End Function


Como você pode ver, ele usa uma expressão regular para o trabalho, que pode ser facilmente alterada se o escopo da cadeia de pesquisa for alterado.     
por 03.05.2013 / 18:50