2011-12-15 3 views
0

У меня есть команда, которая производит incmd version ниже выходаКоманда для извлечения информации столбца

All Rights Reserved. 
This Software is protected by U.S. Patent Numbers 5,794,246; 6,014,670; 6,016,50 
1; 6,029,178; 6,032,158; 6,035,307; 6,044,374; 6,092,086; 6,208,990; 6,339,775; 
6,640,226; 6,789,096; 6,820,077; 6,823,373; 6,850,947; 6,895,471; 7,117,215; 7,1 
62,643; 7,254,590; 7,281,001; 7,421,458; 7,496,588; 7,523,121; 7,584,422; 7,720, 
842; 7,721,270; and 7,774,791, international Patents and other Patents Pending. 

Version: 9.1.0 HotFix2 
Build: 1668 - 2011-Sep-02 
Command ran successfully. 

Я хочу, чтобы принести 9.1.0 из него. до сих пор с помощью findstr "Version" я получаю только Version: 9.1.0 HotFix2 Есть ли способ, которым я могу извлечь информацию о столбцах?

Примечание: без использования каких-либо сторонних инструментов .. (anytool, который доступен по умолчанию в окнах отлично)

ответ

1

Вы можете использовать for для разбития, что выход:

for /f "tokens=2, delims= " %v in ('incmd version ^| findstr Version') do @set Version=%v 
echo %Version% 

См help for для подробного объяснения команды и ее опций.

Обратите внимание, что если вы используете это в пакетном файле (который я предполагал сначала, но, видимо, это не так), вы должны удвоить знаки процента for переменных:

for /f "tokens=2, delims= " %%v in ('incmd version ^| findstr Version') do @set Version=%%v 
echo %Version% 
+0

это дает me '%% v неожиданно в это время.' – Ricky

+2

Если вы используете * внутри * командный файл, вы должны использовать '%% v'. Если вы просто тестируете из командной строки, просто используйте '% v'. – lavinio

Смежные вопросы