找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 25570|回复: 5

[文件操作] 【已解决】批处理dir命令字符串匹配问题

[复制链接]
发表于 2015-10-19 17:32:31 | 显示全部楼层 |阅读模式
本帖最后由 jiaobinbinjk 于 2015-10-22 16:03 编辑

dir *.txt也会列出1.txt_bak这样的文件。
有什么办法能只找到后缀名为txt的文件,像1.txt_bak这样的文件过滤掉。

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2015-10-19 18:01:35 | 显示全部楼层
DOS 的 8.3 命名规则遗留的问题,导致 FindFirstFile 系的 windowsAPI 都会中招,解决方法:
  1. dir *.txt | findstr /i "\.txt$"
复制代码
  1. powershell -Command "dir *.txt"
复制代码
  1. hash /nh *.txt/\.txt$/.i
复制代码
 楼主| 发表于 2015-10-20 09:35:45 | 显示全部楼层
回复 2# CrLf

For /r  D:\Users %%i in (*.txt) do echo %%i
那这个命令应该怎么修改啊?只想找到后缀名为txt的。
发表于 2015-10-20 16:43:57 | 显示全部楼层
For /f "delims=" %%i in ('dir /s /a-d /b d:\users\*.txt ^| findstr /i "\.txt$"') do echo %%i

win10表示完全没有8.3问题
 楼主| 发表于 2015-10-20 17:00:40 | 显示全部楼层
回复 4# flyinnet9


    可以了 ,谢谢。
发表于 2015-10-20 18:02:16 | 显示全部楼层
用if /i "%%~xi"==".txt" echo %%i可以避开所有不同的后缀名

评分

参与人数 1技术 +1 收起 理由
依山居 + 1 1

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 12:50 , Processed in 0.020048 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表