You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows Batch提取文本首个引号内内容的等效实现方法

Windows Batch 实现提取首个引号内内容的方案

需求说明

需要从文本文件(示例内容如下)中提取首个引号内的内容(即10 Ursae Majoris),忽略后续引号中的内容:

17,60,"10 Ursae Majoris",0.03125,34.90625,-39.09375,0,0,176,None,5,None,64,Anarchy,10,None,,,,0,1678643440,1678643440,"10 Ursae Majoris",,,,3,Common,2415659059555

原类Linux代码无法在Windows Batch环境运行:

echo off

for /f "delims=," %%i in (systems.txt) do echo %%i | grep -o '([^""]*)' | head -1

等效Windows Batch实现

以下是两种可行的实现方式:

方法一:字符串截取与替换法

@echo off
setlocal enabledelayedexpansion

for /f "delims=" %%a in (systems.txt) do (
    set "line=%%a"
    :: 截掉第一个引号及之前的所有内容
    set "temp=!line:*"=!"
    :: 以引号为分隔符,提取第一段内容
    for /f "delims="" %%b in ("!temp!") do echo %%b
)

endlocal

方法二:结合findstr正则匹配

@echo off
for /f "delims=" %%a in (systems.txt) do (
    echo %%a | findstr /r /c:"\"[^\"]*\"" | for /f "delims="" tokens=2" %%b in ('more') do echo %%b
)

说明

  • 方法一通过延迟变量扩展实现两次字符串截取,逻辑直观高效,无需依赖外部工具。
  • 方法二借助findstr的正则匹配定位首个引号对,再通过for循环提取中间内容,适合熟悉正则语法的场景。

内容的提问来源于stack exchange,提问作者Franklyn W. R. Tigier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:05:09