Пакетная обработка: извлечь несколько символов строки

Как извлечь буквенно-цифровые символы только из строки?

Пример: b:lbalbqsd1287/;:!, дает blbalbqsd1287

Это возможно с findstr?

1 ответ

Решение

Я думаю, что это может быть как-то возможно сделать в пакетном режиме. Я не знаю как, и я уверен, что это больно, не поддается ремонту и безобразно. Но, в качестве альтернативы, вы можете использовать vbscript для выполнения работы (также встроенный и должен быть доступен в каждой ОС).
Я написал этого маленького парня здесь для вашего удовольствия:)

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


Как вы можете видеть, он использует регулярное выражение для задания, которое вы можете изменить довольно легко, если изменится объем строки поиска.

Другие вопросы по тегам