[英]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.