使用FINDSTR搜索模式并将其分配给变量

时间:2015-03-05 07:23:27

标签: batch-file command-line command dos

我在Build.aip文件中有以下条目。我需要编写一个批处理文件来搜索“PackageFileName并打印为文件中指定的值。在这种情况下,我需要在控制台上打印MyPackageName:

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

请您举一些例子说明我怎么做?我在一些论坛上看到这可以使用FINDSTR完成。

提前致谢。

1 个答案:

答案 0 :(得分:0)

findstr&#34; PackageFileName&#34; Build.aip

如果要使其不区分大小写,请添加/ i参数。

有关更多详细信息,请键入findstr /?

更新了使用for语句的示例

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

这里要记住几件事:

  • 此版本基于Windows 8.1;它可能在不同版本的Windows中有所不同。
  • 令牌= 2是一个示例,假设您要查找的单词是行
  • 中的第二个单词
  • 如果在Build.aip中多次出现PackageFileName,则此代码将中断。
  • findstring命令被反向标记包围,而不是单引号。
  • 我还没有测试过; SET可能实际上不会在for循环中存活。所以测试!
  • 如果您在批处理文件中使用它,则必须将所有%符号加倍。