bat批处理 提取TXT某字符串 前 的字符串 代码找不到哪出了问题 。很辣手

bat批处理 提取TXT某字符串 前 的字符串 代码找不到哪出了问题 。很辣手,第1张

你的代码有点问题,我修改了一下,代码如下:

::═════代═══码═══开═══始═════

@echo

off&setlocal

enabledelayedexpansion

for

/f

"delims="

%%i

in

(atxt)

do

(

set

m=%%i&call

:s)

pause

:s

for

/f

"delims=-

tokens=1,2,"

%%a

in

("!m!")

do

(

if

not

"#%%b"=="#"

(

if

"%%b"=="11"

echo

%%a>>listtxt

set

m=%%b-%%c&goto

:s))

::═════代═══码═══结═══束═════

结果见:listtxt

解释:

::═════代═══码═══开═══始═════

@echo

off&setlocal

enabledelayedexpansion

rem

打开变量延迟

for

/f

"delims="

%%i

in

(atxt)

do

(

rem

获取要处理文本中的每一行

set

m=%%i&call

:s)

rem

将每一行的数据赋值到全局变量m,并调用函数s

pause

:s

for

/f

"delims=-

tokens=1,2,"

%%a

in

("!m!")

do

(

rem

这里的m变量包含每行要处理的数据

rem

用/f解析此行,以“-”为分割获取三组数据

if

not

"#%%b"=="#"

(

rem

判断处理后的结果中是否还含有“-”,如果还有则if成立

if

"%%b"=="11"

echo

%%a

rem

判断第一个“-”符号后面是不是11,如果是则输出“-”前的数据

set

m=%%b-%%c&goto

:s))

rem

变量m的值随处理的次数逐渐改变,每一次减少第一个“-”及之前的数据

::═════代═══码═══结═══束═════

先解释这段

"%SYSTEMROOT%\system32\caclsexe" "%SYSTEMROOT%\system32\config\system"

其实就是用caclsexe这个权限设置的命令去测试一下后面那个system文件的权限。如果权限不够就会报错,错误等级会变成1

现在解释>nul 2>&1

其中>nul是命令返回正确信息后不显示其反馈结果。

而2>&1其实是重定向,也就是调用>nul,那么就等同于2>nul,这个是用于不显示错误信息的命令

那么>nul 2>&1 "%SYSTEMROOT%\system32\caclsexe" "%SYSTEMROOT%\system32\config\system"这句其实是"%SYSTEMROOT%\system32\caclsexe" "%SYSTEMROOT%\system32\config\system" >nul 2>nul

批处理中>这种情况的命令,是可以写到命令前面去的。

现在解释set params = %:"=""

其实就是把脚本文件后面跟上的内容中单双引号"替换成双双引号"",然后赋值到params变量上去。

以上就是关于bat批处理 提取TXT某字符串 前 的字符串 代码找不到哪出了问题 。很辣手全部的内容,包括:bat批处理 提取TXT某字符串 前 的字符串 代码找不到哪出了问题 。很辣手、请大神讲解一下BAT代码、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/10202554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存