в текстовом файле у меня есть эта строка:

<em:version>0.0.0.2</em:version>

Какой cmd (dos или powershell) я могу использовать, чтобы получить это?

0.0.0.2

4 ответа4

4

PowerShell может анализировать XML напрямую. Нет необходимости в регулярных выражениях. Вот пример с файлом FireFox install.rdf. (Я предполагаю, что ваш файл может быть что-то вроде этого.)

PS> [xml]$rdf = Get-Content .\install.rdf
PS> $rdf.RDF.Description.version
1.0
1

попробуй это

$fileContent=gc "path to text file"

$pattern =  '(?i)<em:version[^>]*>(.*)</em:version>'


$result = [Regex]::Matches($fileContent, $pattern)

$result | ForEach-Object {
  $_.Groups[1].Value
} 
1
PS> '<em:version>0.0.0.2</em:version>' -replace '<[^>]+>'
0.0.0.2

# replace file content
(Get-Content file.txt) -replace '<[^>]+>'
0

Как насчет этого? Однострочная команда DOS:

for /f "usebackq tokens=2 delims=<>" %%A in (`type "File.txt" ^| find "<em:version>"`) do echo.%%A

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .