我有一个文本文件,其内容类似于以下内容:
test.txt
:FIPS job <1532602344643_1> of size <134> successfully created. <134> files successfully exported. <0> files failed.
我想将字符串存储在变量的前两个尖括号之间。在此示例中,它是1532602344643_1
。字符串的长度应相同,但在所有其他括号中,长度可能会改变。
这是我的新手,所以有人可以帮助我吗?
答案 0 :(得分:0)
这是执行所需操作的批处理文件:
@echo off
set TEXT_FILE=text.txt
setlocal enabledelayedexpansion
set modules=
for /f "tokens=*" %%i in (%TEXT_FILE%) do (
set "tmp=%%~i"
set modulesFromLine=
call :getNext modulesFromLine "!tmp!"
if "-!modules!"=="-" (
set modules=!modulesFromLine!
) else (
set modules=!modules!,!modulesFromLine!
)
)
endlocal & set REZULT=%modules%&
echo. %REZULT%
exit /b 0
:getNext
setlocal
set accumulator=
set "tmp=%~2"
set "tmp=!tmp:*<=!"
set "tail=>!tmp:*>=!"
call set "module_name=%%tmp:!tail!=%%"
if not "-!module_name!"=="-" (
call :getNext %1 "!tail!"
if "-!%1!"=="-" (
set "accumulator=!module_name!"
) else (
set "accumulator=!module_name!,!%1!"
)
)
endlocal & set %1=%accumulator%&
exit /b 0
将文件放入TEXT_FILE
并保存RESULT
。请记住,字符串不应该包含"
。
如果您想阅读有关批次wiki的内容,则很适合开始学习。