简体   繁体   English

使用批处理脚本解析字符串

[英]Parse string using batch script

How can i parse string using batch script? 如何使用批处理脚本解析字符串?

Goal is to save in a array everything under Import: and strip out "#head" for example --> "//MPackages/Project/config/abc.txt" and "//Packages/Project/config/cde.txt" 目标是在导入下阵列一切保存并去掉“#head”例如- >“//MPackages/Project/config/abc.txt”和“//Packages/Project/config/cde.txt”

test.txt 的test.txt

Version: 4.5.0
Import:
   //MPackages/Project/config/abc.txt                       #head
   //Packages/Project/config/cde.txt                        #head
View:
  //MPackages/Project/config/ac.txt                     #head
  //Packages/Project/config/de.txt                      #head

MY try 我的尝试

@echo off

set buildlog="devel.p4inc"

setlocal EnableDelayedExpansion
for /F "tokens=*" %%A in  (devel.p4inc) do  (
if /i "%%A"=="Import:" set "import=true"
IF DEFINED import (echo %%A)

)
@echo off
set "vf=version.txt"
setlocal enableDelayedExpansion
set counter=1
for /f "usebackq tokens=1 delims=#" %%a in ("%vf%") do (
    set "line=%%a"
    if "!line:View=!" neq "!line!" if "!in!" equ "true"  (
        set in=false
        rem echo ###
    )

    if "!in!" equ "true" (
        set "_!counter!_=%%a"
        set /a counter=counter+1
    )
    rem echo !line!
    if "!line:Import=!" neq "!line!" (
        set in=true
        rem echo --
    )

) 

set _

try this.It should set the desired variables in numbered list like _1_ ; 试试看。它应该在编号列表中设置所需的变量,例如_1_ _2_ ; _2_ ; ... ...

This is what I had in mind: 这就是我的想法:

@echo off
setlocal EnableDelayedExpansion

set "buildlog=devel.p4inc"
set idx=0

for /F "usebackq" %%A in ("%buildlog%") do (
    if defined import (
        set "config=%%A"
        if "!config:~0,2!"=="//" (
            set "config[!idx!]=%%A"
            set /a idx += 1
        ) else set "import="
    ) else if /i "%%A"=="Import:" set "import=true"
)

rem // display config array
set config[

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM