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

[文件操作] dir 文件名通配符问题求助

[复制链接]
发表于 2015-10-3 22:18:29 | 显示全部楼层 |阅读模式
请教大师们一个关于文件名通配符的问题:

要显示文件名包含1的文件名
  1. dir /b /a-d "*1*.*"
复制代码
显示为:
1.txt
11.txt
111.txt
1测试.txt
dir_findstr.bat
一根据文件列表.txt
三根据当前目录.txt

测试11.txt

能不能用一个批量操作的命令达到下面的效果,只显示文件名包含1,文件名不包含1不显示(即dir_findstr.bat,一根据文件列表.txt,三根据当前目录.txt不显示):
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b /a-d^|findstr 1') do        (
  3.                 echo %%a
  4. )
复制代码
只显示文件名包含1的:
1.txt
11.txt
111.txt
1测试.txt
测试11.txt
 楼主| 发表于 2015-10-3 22:22:59 | 显示全部楼层
我觉得是dir和findstr通配符通配效果不一样造成的
发表于 2015-10-3 23:25:44 | 显示全部楼层
本帖最后由 /zhqsystem/zhq 于 2015-10-4 00:06 编辑

没看清题目(多包涵)修改后的代码:

  1. @echo off
  2. 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 (
  3. if exist "%%i:" (
  4.   for /f "delims=" %%j in ('dir/a-d/s/b/l/on "%%i:*1*.*"') do (
  5.    if /i not "%%~dpj"=="%~dp0" echo=%%j
  6.   )
  7. )
  8. )
  9. pause
复制代码

排除批处理所在目录不包含下级目录
发表于 2015-10-3 23:33:19 | 显示全部楼层
dir的水很深...
就简单的记住最多只能在文件名和扩展名中各出现一个*吧
发表于 2015-10-4 12:36:01 | 显示全部楼层
我XP两个显示都一样的说
 楼主| 发表于 2015-10-4 20:56:48 | 显示全部楼层
回复 3# /zhqsystem/zhq


    谢谢哈,其实我只想显示批处理目录下的文件,解决了的话同时可以应用于move,copy之类的。
    我单独提取出dir/a-d/s/b/l/on "*1*.*",效果也是一样,也显示不包含1的文件。
 楼主| 发表于 2015-10-4 20:59:59 | 显示全部楼层
回复 4# bailong360


    恩,谢谢,其实我是想找到处理包含特定字符文件的高效率方法(用dir,move,copy 之类命令)。
 楼主| 发表于 2015-10-4 21:00:36 | 显示全部楼层
回复 5# 尘丶


    我这是用WIN8.1 64bit
发表于 2015-10-5 14:32:53 | 显示全部楼层
本帖最后由 WHY 于 2015-10-5 14:35 编辑

dir *1*.* 能匹配包含的字符1的文件名(包括短文件名)
超过8字符的短文件名后面一般有 ~1、~2 的标志

评分

参与人数 1技术 +1 收起 理由
ftg1 + 1 帮我找到原因了,谢谢

查看全部评分

 楼主| 发表于 2015-10-6 17:27:11 | 显示全部楼层
回复 9# WHY


    可是不是1的也出来了,可能是汉字里也包含1的编码
发表于 2015-10-6 22:18:19 | 显示全部楼层
回复 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>
 楼主| 发表于 2015-10-8 08:40:12 | 显示全部楼层
回复 11# WHY
谢谢,那是这个问题了,能解决么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 14:41 , Processed in 0.020663 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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