标题: [文本处理] [已解决]批处理命令findstr匹配不到特殊字符的问题 [打印本页]
作者: waitfortea 时间: 2022-9-26 11:03 标题: [已解决]批处理命令findstr匹配不到特殊字符的问题
本帖最后由 waitfortea 于 2022-9-28 15:17 编辑
━/
┣━我的资源
┃ ┣━慕课破解
┃ ┃ ┣━SoutiPro浏览器.zip
┃ ┣━【1】Python初级(必学)
┃ ┃ ┣━【01】和【02】课程(配套课件和源码).zip
┃ ┃ ┣━【01】Python基础语法(必学)
┃ ┃ ┃ ┣━第8节 列表和元组
┃ ┃ ┃ ┃ ┣━27-列表复制数据.mp4
┃ ┃ ┃ ┃ ┣━18-下标.mp4
┃ ┃ ┃ ┃ ┣━28-列表的遍历之while.mp4
┃ ┃ ┃ ┃ ┣━26-列表修改数据.mp4
┃ ┃ ┃ ┃ ┣━31-随机分配办公室的步骤分析.mp4
┃ ┃ ┃ ┃ ┣━22-列表增加数据之append.mp4
┃ ┃ ┃ ┃ ┣━25-列表删除数据.mp4
┃ ┃ ┃ ┃ ┣━35-定义元组.mp4
┃ ┃ ┃ ┃ ┣━32-随机分配办公室的实现代码.mp4
┃ ┃ ┃ ┃ ┣━33-列表总结.mp4
┃ ┃ ┃ ┃ ┣━20-判断是否存在.mp4
┃ ┃ ┃ ┃ ┣━36-元组常见操作之查找.mp4
┃ ┃ ┃ ┃ ┣━37-元组数据的修改操作.mp4
┃ ┃ ┃ ┃ ┣━24-列表增加数据之insert.mp4
┃ ┃ ┃ ┃ ┣━17-列表简介.mp4
┃ ┃ ┃ ┃ ┣━38-元组的总结.mp4
┃ ┃ ┃ ┃ ┣━23-列表增加数据之extend.mp4
┃ ┃ ┃ ┃ ┣━21-体验案例-判断是否存在.mp4
┃ ┃ ┃ ┃ ┣━19-查找函数.mp4
┃ ┃ ┃ ┃ ┣━34-体验元组.mp4
┃ ┃ ┃ ┃ ┣━30-列表嵌套.mp4
┃ ┃ ┃ ┃ ┣━29-列表的遍历之for.mp4
┃ ┃ ┃ ┣━第9节 字典和集合
┃ ┃ ┃ ┃ ┣━04-字典常用操作之删除.mp4
┃ ┃ ┃ ┃ ┣━05-字典常用操作之修改.mp4
┃ ┃ ┃ ┃ ┣━16-集合总结.mp4
┃ ┃ ┃ ┃ ┣━10-字典的循环遍历之键值对(拆包).mp4
┃ ┃ ┃ ┃ ┣━03-字典常用操作之新增.mp4
┃ ┃ ┃ ┃ ┣━09-字典的循环遍历之键值对.mp4
┃ ┃ ┃ ┃ ┣━11-字典的总结.mp4
┃ ┃ ┃ ┃ ┣━07-字典的循环遍历之key.mp4
┃ ┃ ┃ ┃ ┣━08-字典的循环遍历之value.mp4
┃ ┃ ┃ ┃ ┣━15-集合常见操作之查找数据.mp4
┃ ┃ ┃ ┃ ┣━13-集合常见操作之增加数据.mp4
┃ ┃ ┃ ┃ ┣━06-字典常用操作之查找.mp4
┃ ┃ ┃ ┃ ┣━12-创建集合.mp4
┃ ┃ ┃ ┃ ┣━14-集合常见操作之删除数据.mp4
对如上的文本sss.txt,findstr "┃ ┃ ┃ ┃ ┣━" sss.txt没有输出
作者: qixiaobin0715 时间: 2022-9-26 11:14
- findstr /C:"┃ ┃ ┃ ┃ ┣━" sss.txt
复制代码
作者: Batcher 时间: 2022-9-26 11:17
回复 1# waitfortea
搜索的字符串包含空格的时候,需要使用 /c:
参考:http://bbs.bathome.net/thread-14682-1-1.html
作者: waitfortea 时间: 2022-9-26 11:44
回复 3# Batcher
同样的文本 为什么for /f "delims=" %%a in (sss.txt) do (echo %%a)正常输出
但是 for /f "delims=,skip=1" %%a in (sss.txt) do (echo %%a) 非但没有跳过第一行,反而有的行输出都不完整了
作者: Batcher 时间: 2022-9-26 12:00
回复 4# waitfortea
for /f "skip=1 delims="
作者: waitfortea 时间: 2022-9-26 12:17
回复 5# Batcher
感谢大佬 明白了 但是我发现这些开关的组合在您的教程里好像都没有提到,是因为教程是基础篇的关系吗
作者: waitfortea 时间: 2022-9-26 14:10
回复 5# Batcher - @echo off
- chcp 65001
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
- cd. >"%~dp0a.txt"
- for /f "skip=1 delims=" %%a in (sss.txt ) do (
- set dir=%%a
- echo !dir!1
- set dir=!dir:┃ ┃ ┃ ┃ ┣━=5\!
- set dir=!dir:┃ ┃ ┃ ┣━=4\!
- set dir=!dir:┃ ┃ ┣━=3\!
- set dir=!dir:┃ ┣━=2\!
- set dir=!dir:┣━=1\!
- echo !dir!1
- >>"%~dp0a.txt" echo !dir!
- )
复制代码
命令如上,同样的文本,想问下为什么输出的dir后面多了很多空格,明明替换之前都没有,而为什么替换之后有
作者: Batcher 时间: 2022-9-26 14:14
回复 6# waitfortea
for命令教程第22页提到:
tokens 和 delims 同时出现时,建议把 delims 放在 tokens 后面。
没有提到skip、delims、tokens同时出现的情况。把 delims 放在最后。
作者: Batcher 时间: 2022-9-26 14:16
回复 7# waitfortea
请检查你的代码第10行结尾是否有多余的空格
作者: waitfortea 时间: 2022-9-26 14:23
回复 9# Batcher
还真有,我去,连set也要计算空格的,没有想到,可这样的话应该理论是只有有这个字符的行才会有空格,那我怎么所有行都有空格呢,不知道我理解的对不对,还有感谢大佬解答
作者: waitfortea 时间: 2022-9-26 14:25
回复 8# Batcher
这个说法好像不太对,因为出现”tokens=1-2, delims=\“或者”tokens=1-2, delims=\ “的时候都无法识别分隔符,不知道我理解得对不对
作者: Batcher 时间: 2022-9-26 14:27
回复 10# waitfortea
给set命令加上双引号是个好习惯,例如:
set "dir=!dir:┃ ┃ ┃ ┣━=4\!"
作者: Batcher 时间: 2022-9-26 14:28
回复 11# waitfortea
没啥特殊情况的话,都把 delims 放在最后
作者: waitfortea 时间: 2022-9-26 14:29
回复 12# Batcher
确实,因为我之前一致认为!!或者%%是确认边界的,这个其实是错误的
作者: waitfortea 时间: 2022-9-26 14:30
回复 13# Batcher
”tokens=1-2, delims=\ “ 这个不是把delims放到最后了吗
作者: Batcher 时间: 2022-9-26 14:37
回复 15# waitfortea - for /f "tokens=1-3 delims=\" %%i in ("C:\Test\From") do (
- echo %%i
- echo %%j
- echo %%k
- )
复制代码
作者: waitfortea 时间: 2022-9-27 20:44
回复 3# Batcher
findstr /c "┃ ┣━" sss.txt 失败
显示FINDSTR: /c ignored
作者: waitfortea 时间: 2022-9-27 20:47
回复 2# qixiaobin0715
也没有输出
作者: qixiaobin0715 时间: 2022-9-28 08:59
你可以把测试失败的文件发到网盘上,让大家帮你测试,看看是哪里出了问题。
作者: qixiaobin0715 时间: 2022-9-28 12:09
本帖最后由 qixiaobin0715 于 2022-9-28 12:14 编辑
回复 18# waitfortea
你没有用对,/C后面接冒号+引号,并且/C+冒号+引号之间不能有空格。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |