获取两个字符串之间的未知字符串,并将其保存在var(Windows脚本)中



问题是,我想通过使用Windows bash utils来实现这一点(这样就可以在其他工作站上轻松使用,而无需使用Cygwin/grep等其他应用程序)。此外,该命令将在一个较大的脚本中,该脚本使用提取的字符串作为文件名的一部分。

例如:这是搜索文件中的行

"    <DataVersion>A0C2</DataVersion>"

A0C2是我需要的字符串,但它可以有一个不同的值,如X1Z4,但总是有4个半整数字符长。

<DataVersion> and </DataVersion> are always present.

此外,这条线可能会出现不止一次,但我只需要考虑第一次。

我同时找到了自己问题的答案。

set ROW=
set VERSION=
for /f %%i in ( 'findstr "<DataVersion>"  file.txt' ) do @set ROW=%%i
set VERSION=%ROW:~x,y%

其中:

  • x是要在ROW中跳过的字符数
  • y是要在版本中保存的字符数

所以在的情况下

findstr "<DataVersion>"  file.txt

返回ROW并将其设置为以下值:

<DataVersion>AX23</DataVersion>

然后:

set VERSION=%ROW:~14,4%

将VERSION设置为AX23

最新更新