标题: [文件操作] dir 文件名通配符问题求助 [打印本页]
作者: ftg1 时间: 2015-10-3 22:18 标题: dir 文件名通配符问题求助
请教大师们一个关于文件名通配符的问题:
要显示文件名包含1的文件名复制代码
显示为:
1.txt
11.txt
111.txt
1测试.txt
dir_findstr.bat
一根据文件列表.txt
三根据当前目录.txt
测试11.txt
能不能用一个批量操作的命令达到下面的效果,只显示文件名包含1,文件名不包含1不显示(即dir_findstr.bat,一根据文件列表.txt,三根据当前目录.txt不显示):- @echo off
- for /f "delims=" %%a in ('dir /b /a-d^|findstr 1') do (
- echo %%a
- )
复制代码
只显示文件名包含1的:
1.txt
11.txt
111.txt
1测试.txt
测试11.txt
作者: ftg1 时间: 2015-10-3 22:22
我觉得是dir和findstr通配符通配效果不一样造成的
作者: /zhqsystem/zhq 时间: 2015-10-3 23:25
本帖最后由 /zhqsystem/zhq 于 2015-10-4 00:06 编辑
没看清题目(多包涵)修改后的代码:
-
- @echo off
- for %%i in (c d e f g h i j k l m n o p q r s t u v w x y z a b) do (
- if exist "%%i:\" (
- for /f "delims=" %%j in ('dir/a-d/s/b/l/on "%%i:*1*.*"') do (
- if /i not "%%~dpj"=="%~dp0" echo=%%j
- )
- )
- )
- pause
复制代码
排除批处理所在目录不包含下级目录
作者: bailong360 时间: 2015-10-3 23:33
dir的水很深...
就简单的记住最多只能在文件名和扩展名中各出现一个*吧
作者: 尘丶 时间: 2015-10-4 12:36
我XP两个显示都一样的说
作者: ftg1 时间: 2015-10-4 20:56
回复 3# /zhqsystem/zhq
谢谢哈,其实我只想显示批处理目录下的文件,解决了的话同时可以应用于move,copy之类的。
我单独提取出dir/a-d/s/b/l/on "*1*.*",效果也是一样,也显示不包含1的文件。
作者: ftg1 时间: 2015-10-4 20:59
回复 4# bailong360
恩,谢谢,其实我是想找到处理包含特定字符文件的高效率方法(用dir,move,copy 之类命令)。
作者: ftg1 时间: 2015-10-4 21:00
回复 5# 尘丶
我这是用WIN8.1 64bit
作者: WHY 时间: 2015-10-5 14:32
本帖最后由 WHY 于 2015-10-5 14:35 编辑
dir *1*.* 能匹配包含的字符1的文件名(包括短文件名)
超过8字符的短文件名后面一般有 ~1、~2 的标志
作者: ftg1 时间: 2015-10-6 17:27
回复 9# WHY
可是不是1的也出来了,可能是汉字里也包含1的编码
作者: WHY 时间: 2015-10-6 22:18
回复 10# ftg1
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>cd /d E:\test
E:\test>dir /x /a-d
驱动器 E 中的卷是 娱乐
卷的序列号是 000B-C444
E:\test 的目录
2015/10/06 22:11 0 1.txt
2015/10/06 22:11 0 1测试.txt
2015/10/06 22:11 0 DIR_FI~1.BAT dir_findstr.bat
2015/10/06 22:11 0 一根据~1.TXT 一根据文件列表.txt
2015/10/06 22:11 0 一根据~2.TXT 一根据文件列表a.txt
2015/10/06 22:11 0 测试1.txt
6 个文件 0 字节
0 个目录 198,364,561,408 可用字节
E:\test>dir /b /a-d *1*.*
1.txt
1测试.txt
dir_findstr.bat
一根据文件列表.txt
测试1.txt
E:\test>dir /b /a-d *2*.*
一根据文件列表a.txt
E:\test>dir /b /a-d *~*.*
dir_findstr.bat
一根据文件列表.txt
一根据文件列表a.txt
E:\test>
作者: ftg1 时间: 2015-10-8 08:40
回复 11# WHY
谢谢,那是这个问题了,能解决么?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |