使用 FINDSTR 搜索模式并将其分配给变量
Using FINDSTR to search for a pattern and assign it to a variable
我在文件 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 来完成。
提前致谢。
findstr "PackageFileName" Build.aip
如果要使其不区分大小写,请添加 /i 参数。
有关更多详细信息,请键入 findstr /?
更新了使用 for 语句的示例
FOR /F "token=2" %i in (`FINDSTR "PackageFileName" Build.aip`) do SET var=%i
这里要记住几件事:
- 此版本基于Windows8.1;它在 Windows.
的不同版本中可能会有所不同
- token=2 是假设您要查找的词是行中的第二个词的示例
- 如果 PackageFileName 在 Build.aip 中出现不止一次,此代码将中断。
- findstring 命令被反引号包围,而不是单引号。
- 我没有测试过; SET 实际上可能无法在 for 循环中存活下来。所以测试!
- 如果在批处理文件中使用它,则必须将所有 % 符号加倍。
我在文件 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 来完成。
提前致谢。
findstr "PackageFileName" Build.aip
如果要使其不区分大小写,请添加 /i 参数。
有关更多详细信息,请键入 findstr /?
更新了使用 for 语句的示例
FOR /F "token=2" %i in (`FINDSTR "PackageFileName" Build.aip`) do SET var=%i
这里要记住几件事:
- 此版本基于Windows8.1;它在 Windows. 的不同版本中可能会有所不同
- token=2 是假设您要查找的词是行中的第二个词的示例
- 如果 PackageFileName 在 Build.aip 中出现不止一次,此代码将中断。
- findstring 命令被反引号包围,而不是单引号。
- 我没有测试过; SET 实际上可能无法在 for 循环中存活下来。所以测试!
- 如果在批处理文件中使用它,则必须将所有 % 符号加倍。