windows - FINDSTR 查找字符串的文本 START END
问题描述
我有字符串photo="999" price="10" category="1"
。我只想得到10
. 这意味着我需要以 price=" 开头并以 " 结尾的字符串
@For /F "Tokens=1*Delims==" %%A In ('FindStr /I "^price=" "C:\price.txt" 2^>NUL')Do @Set "Ver=%%~B"
@Echo(%%Ver%% = %Ver% & Pause
解决方案
@ECHO OFF
SETLOCAL
set "string=photo="999" price="10" category="1""
:: remove quotes
set "string=%string:"=%"
for /f %%a in ("%string:* price=%") do set /a pricefound%%a
set pri
goto :eof
由于我们没有相关文件的代表性样本,因此我们被迫得出这样的结论:要求是 price="anumber"
在文件中找到唯一的外观。
所以,由于findstr
输出,适当的框架,会选择这一行,我们需要做的就是处理字符串。
这是一种快速而肮脏的方法。它可能足以满足 OP 的目的。
首先,从字符串中删除引号,因为它们有干扰的习惯。
接下来,for /f
在字符串处理模式下使用,它对括号中的引用字符串发挥作用。该字符串是原始字符串,减去引号,因此将“Space价格”之前的所有字符替换为空,并取结果的第一个标记,从而在示例案例中=10
分配给。%%a
=10
然后通过简单地连接两个字符串来执行“set /a somevariablename ”。
请注意,如果文件包含类似的行,... pricelastweek="9" ...
则可能需要采取其他措施。
推荐阅读
- hadoop - hdfs如何计算已用(剩余)空间配额?如何将小文件存储在hdfs中?
- python - xmltodict 并再次返回;属性获得自己的标签
- angular - 在 tomcat 服务器的根目录中搜索 Angular 资产文件夹
- jquery - 重新加载页面并更改元素的类
- c++ - 为什么擦除+删除比删除更有效
- javascript - 有记忆和没有记忆的斐波那契时间复杂度
- ruby-on-rails - 如何覆盖 will_paginate 网址?will_paginate gem 生成错误的 url
- elasticsearch - 如何根据elasticsearch中的条件删除嵌套字段中的特定对象?
- php - 配置为在其他服务器上作为 HTTPS 运行后如何强制 WordPress 使用 HTTP,--not-- HTTPS
- javascript - 使用 Angular 12 使用 js-xlsx 读取本地 Excel 文件?