2015-03-05 2 views
0

У меня есть следующая запись в файле Build.aip. Мне нужно написать пакетный файл, который ищет «PackageFileName и печатает значение, присвоенное для этого в файле В этом случае, мне нужно напечатать имя_моего_пакет на консоли:.Использование FINDSTR для поиска шаблона и назначения его переменной

<ROW BuildKey="DefaultBuild" BuildName="DefaultBuild" BuildOrder="1" BuildType="0" PackageFolder="C:\Build\Build.aip" PackageFileName="MyPackageName" Languages="en" InstallationType="4"> 

Может вы, пожалуйста, дайте мне некоторые примеры как я могу это сделать? Я видел в некоторых форумах, что это может быть сделано с помощью Findstr.

Спасибо заранее.

ответ

0

Findstr «PackageFileName» Build.aip

Если вы хотите, чтобы сделать его чувствительно к регистру , добавьте аргумент/i.

Для получения более подробной информации, наберите findstr /?

Обновление для примера, чтобы использовать для постановки

FOR /F "token=2" %i in (`FINDSTR "PackageFileName" Build.aip`) do SET var=%i 

пару вещей, чтобы иметь в виду здесь:

  • Эта версия основана на ОС Windows 8.1; он может работать по-разному в разных версиях Windows.
  • Токен = 2 пример, предполагающий, что слово, которое вы ищете, является вторым словом в строке
  • Если PackageFileName появляется более одного раза в Build.aip, этот код прерывается.
  • Команда findstring окружена обратными тиками, а не одинарными кавычками.
  • Я не проверял его; SET может фактически не пережить цикл for. Так что тест!
  • Если вы используете его в пакетном файле, вы должны удвоить все знаки%.
+0

Спасибо за ответ. Это даст полную строку в качестве вывода. Я хочу извлечь только MyPackageName и назначить его переменной. Есть ли способ сделать это? У меня очень мало знаний в партии. –

+0

Да, наверное. Ваш вопрос не содержит информации о формате файла Build.aip. Как правило, вы, вероятно, собираетесь искать команду FOR. У этого есть некоторые действительно причудливые варианты, включая возможность запускать другую команду, разбор строк и выполнение команд. –

+0

Можете ли вы дать мне пример на этот счет? Заранее спасибо. –

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