Batch file 如何以指定的偏移量批量提取字符串的一部分?

Batch file 如何以指定的偏移量批量提取字符串的一部分?,batch-file,extract,Batch File,Extract,我一直在寻找如何从字符串中提取CRC(该字符串上的CRC偏移量是可变的),我尝试将“0x”用作delims,但没有找到 下面是一个示例“xxxxxxxxxxxx0x112c8b44xxxxxxxxxxxxxxxx” 提前感谢。您对字符串的定义不是很清楚,因此我必须包括一些假设: 只有一次出现0x 所需子字符串的长度始终为8个字符 有什么问题吗对于/f“delims=0x”%a in(“XXXXXXXXXXXXXXXX 0x112C8B44XXXXXXXXXXXXX”)do echo%a给出

我一直在寻找如何从字符串中提取CRC(该字符串上的CRC偏移量是可变的),我尝试将“0x”用作delims,但没有找到 下面是一个示例“xxxxxxxxxxxx0x112c8b44xxxxxxxxxxxxxxxx”


提前感谢。

您对字符串的定义不是很清楚,因此我必须包括一些假设:

  • 只有一次出现
    0x
  • 所需子字符串的长度始终为8个字符


有什么问题吗
对于/f“delims=0x”%a in(“XXXXXXXXXXXXXXXX 0x112C8B44XXXXXXXXXXXXX”)do echo%a
给出的是准确的
112C8B44
。使用此输入字符串“Xxx-xxxxxxx-XXXXXX-xxxx+Xxx-00.00-0x112C8B44-xxxx.99.99.Xxx”不是通用的尝试。好吧,其他人只能回复您提供的信息,因此,当您提供一些随机的示例数据而不是实际的数据时,任何建议都不会对您有帮助;此外,每当有人试图帮助你时,如果你继续改变榜样,他们最终会放弃。因此,请提供足够的信息和现实的例子,以及您自己的编码尝试,通过回答您的问题!也可以在这里参观和学习!提示:由于
0x
似乎只出现一次,请尝试删除此部分字符串之前的所有内容,然后使用
for/F
和一组分隔符,这些分隔符覆盖要提取的字符串部分后面的所有字符…
set "string=some-string_12:34and0xABCDEFGHplus_some:more123chars"
set "string=%string:*0x=%" & REM remove everything until (including) '0x'
set "string=%string:~0,8%" & REM take eight chars
echo %string%