前言
今天在对windows进行提权之前的系统信息收集的时候,需要使用到一条批处理语句把特定部分的内容从一个txt的文本当中提取出来;该条语句是如下:
for /f "tokens=2,3 delims==" %%a in (tmplist.txt) do (echo %%a >> software.txt)
当时跟着流程操作的时候,对这条语句的了解也只是仅限于知道这条语句的作用是将tmplist.txt文本文件里面的内容按照一定规则取出想要的部分的内容输出到software.txt文本里;但是跟着教程一路操作下来,到了这一步却出现了如下的错误:
示例1
要处理的文本文件名为:tmplist.txt,其内容为:
1、饶天亮=玫瑰爱人.wma
2、高一首=我不愿错过.mp3
3、黃凱芹=傷感的戀人.MP3
4、黄灿=黄玫瑰.lrc
5、黎姿=如此这般的爱情故事.mp3
显示文本文件内的全部内容,执行的命令:
for /f %%i in (tmplist.txt) do echo %%i
得到的结果如下:
for /f "delims==" %%a in (tmplist.txt) do echo %%a
得到的结果如下:
for /f "tokens=2 delims=*." %%a in (tmplist.txt) do echo %%a
经过实际的尝试,发现如果使用中文编码的符号顿号“、”来作为分割符,是无法正确得到结果的,所以将序号后面的顿号全部改为“*” ,以便测试的正常进行;
1*饶天亮=玫瑰爱人.wma
2*高一首=我不愿错过.mp3
3*黃凱芹=傷感的戀人.MP3
4*黄灿=黄玫瑰.lrc
5*黎姿=如此这般的爱情故事.mp3
for /f "tokens=1,3 delims=*." %%a in (tmplist.txt) do echo %%a %%b