我称要搜索的文件为input.txt,要查找的字符串为mystring。
input.txt的示例内容(真实的input.txt)。
randomstring1<>"\/=:
randomstring2<ORIGINAL>mystring</ORIGINAL>randomstring3
- mystring被字符串
<ORIGINAL>
和</ORIGINAL>
包围,需要搜索它们 - 两个
ORIGINAL
标签之间的字符串应该复制到剪贴板中(使用| clip) - mystring和标签只出现一次。但是它们没有固定的位置
- 所有字符串都可能包含特殊字符(<, >, ", \, /, =, :)
我阅读了很多其他的SO问题,但老实说:FOR循环和SET命令语法对我来说太笨拙了。我想我的最佳选择将是FINDSTR命令。但也许也可以通过一些正则表达式的帮助来实现。
我不想使用VBscript、Powershell、SED、FART、AWK、grep或任何其他额外的工具。
请友善地解释难点,如果您发布一个解决方案。
我想理解它,也许对其他人有帮助。
在我放弃之前,最后一次尝试是这个test.cmd
@echo off
set "x=randomstring1<>"\/=:randomstring2<ORIGINAL>mystring</ORIGINAL>randomstring3"
set "x=%x:*<ORIGINAL>=%"
set "x=%x:</ORIGINAL>*=%"
set x=%x:~2%
echo %x%
pause