DOS - 批处理之 for /f 中的 delims 和 tokens

简介: DOS - 批处理之 for /f 中的 delims 和 tokens

前言

今天在对windows进行提权之前的系统信息收集的时候,需要使用到一条批处理语句把特定部分的内容从一个txt的文本当中提取出来;该条语句是如下:


for /f "tokens=2,3 delims==" %%a in (tmplist.txt) do (echo %%a >> software.txt)

当时跟着流程操作的时候,对这条语句的了解也只是仅限于知道这条语句的作用是将tmplist.txt文本文件里面的内容按照一定规则取出想要的部分的内容输出到software.txt文本里;但是跟着教程一路操作下来,到了这一步却出现了如下的错误:


image.png

示例1

要处理的文本文件名为:tmplist.txt,其内容为:

1、饶天亮=玫瑰爱人.wma

2、高一首=我不愿错过.mp3

3、黃凱芹=傷感的戀人.MP3

4、黄灿=黄玫瑰.lrc

5、黎姿=如此这般的爱情故事.mp3

显示文本文件内的全部内容,执行的命令:

for /f %%i in (tmplist.txt) do echo %%i

得到的结果如下:

image.png

for /f "delims==" %%a in (tmplist.txt) do echo %%a

得到的结果如下:


image.png


for /f "tokens=2 delims=*." %%a in (tmplist.txt) do echo %%a

经过实际的尝试,发现如果使用中文编码的符号顿号“、”来作为分割符,是无法正确得到结果的,所以将序号后面的顿号全部改为“*” ,以便测试的正常进行;

1*饶天亮=玫瑰爱人.wma

2*高一首=我不愿错过.mp3

3*黃凱芹=傷感的戀人.MP3

4*黄灿=黄玫瑰.lrc

5*黎姿=如此这般的爱情故事.mp3

image.png

for /f "tokens=1,3 delims=*." %%a in (tmplist.txt) do echo %%a %%b

image.png

目录
相关文章
|
25天前
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
119 56
|
1天前
|
Windows
DOS 批处理 setlocal命令、endlocal命令详解
setlocal这是一个命令,它开始局部化环境更改,通常在批处理文件中使用,以确保在脚本中所做的任何环境更改(例如设置或修改环境变量)不会影响到调用此批处理的上下文或其他批处理文件
|
Windows
【批处理学习笔记】第十一课:常用DOS命令(1)
【 文件夹管理 】cd 显示当前目录名或改变当前目录。md 创建目录。rd 删除一个目录。dir 显示目录中的文件和子目录列表。tree 以图形显示驱动器或路径的文件夹结构。path 为可执行文件显示或设置一个搜索路径。
1103 0
|
Windows
【批处理学习笔记】第十二课:常用DOS命令(2)
文件管理type 显示文本文件的内容。copy 将一份或多份文件复制到另一个位置。del 删除一个或数个文件。move 移动文件并重命名文件和目录。(Windows XP Home Edition中没有)ren 重命名文件。
1166 0
|
Windows
【批处理学习笔记】第十四课:常用DOS命令(4)
系统管理at 安排在特定日期和时间运行命令和程序shutdown立即或定时关机或重启taskkill结束进程(WinXPHome版中无该命令)tasklist显示进程列表(Windows XP Home Edition中没有)reg 注册表控制台工具atAT命令是Windows XP中内置的命令,它也可以媲美Windows中的“计划任务”,而且在计划的安排、任务的管理、工作事务的处理方面,AT命令具有更强大更神通的功能。
1087 0
|
Windows Linux
利用DOS批处理实现定时关机操作
  10月1放假回来,寝室晚上10:30就停电了,最无法让人理解的是第二天早上8:00才来电。原来晚上电脑都是不关机的,开着WiFi一直到天亮,可是现在不行了,电脑如果一直开着第二天早上起来电脑肯定没电,于是我就想让它定时关机。
1415 0
|
Windows
dos命令批处理发送文字到剪贴板
方法一(推荐): echo 要发送到剪贴板的字 | clip   方法二: @echo off::显示要发送的文字重定向到windows临时文件夹下echo 要发送到剪贴板的字>%systemroot%\temp\clip.
1050 0