你的代码有点问题,我修改了一下,代码如下:
::═════代═══码═══开═══始═════
@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代码、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)