机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8422|回复: 10

【魍生技】快速统计文件名

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。1 _; b* A- n3 p* t

: n! ^9 l6 [9 l# n, ?$ Q: N所以这个时候就可以祭出【批处理】了:# O6 z  }5 k9 J7 s3 t
, p: J( M8 v/ m  t
1、新建一个.txt文件。
2 o8 E" |/ m" k/ V0 o( j2、打开,输入以下红字内容(这里以统计.PDF文件为例):
) ^$ M& m# b5 k3 V! LDIR  *.pdf /B  >LIST.TXT
" e! [: K5 ~/ Y  @4 h1 y$ q* l, S& C- h5 z5 A
3、保存文件,将.txt后缀改为.bat。' E% ^4 [1 v( z( ^: l
4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。
5 r/ o0 L4 ]. T; i: k" ^- Y3 E
/ L: a: q( V4 G, ?3 f0 g% X特别的说明:' g2 I7 Y  X9 D& o1 }2 C& g
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件). U4 y2 c9 S" M, p, Q
" W! x4 J7 ^5 e
5 I1 R& c$ Q( Z* N9 L% Y
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖
4 A, o. @* J; W4 z批量获取文件名
/ o9 N' ?/ g1 `8 z2 B这里分享工具下载链接:
9 O1 V9 S5 Z; ^. b. H. E! T# o/ a4 M/ m/ Q
http://pan.baidu.com/s/1o8u6aiY* h9 S+ v* A+ w! i

& O# B3 n! l- ?4 X功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。1 y: n9 f' s5 s  Q% p) d

: i& F2 G. t: z  Z9 r% T* y6 L* K使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
/ x5 B; H5 z: R6 E0 j0 @9 c
: Z! T5 `: u4 ]注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。! _4 q! ]- L  ]4 n# W( y
* ^' a, m; k/ u* R
授人以鱼不如授人以渔,这里直接上代码:
2 v1 `( _& E$ t  R
: w2 D, Z/ ]3 |! w; aPrivate Sub 提取文件名()6 H! }) M$ n7 Y( h  y+ j1 O( }
3 V" }, M# Q7 w9 Z0 J
Dim FileName As String( P* ~# U* ]2 j4 w9 M/ C9 b
& N0 j- d" S2 i- n" L* S
Dim i As Long
% H4 y1 r; p2 h5 Y! I) r/ W% t+ {/ F# u; B/ s+ ]) C7 ^
Dim tmp As String. ]. p2 B2 E5 u9 Y& H8 E2 G

* h9 `, R2 A4 }mypath = ActiveWorkbook.Path
5 g( @% \( z6 P( Q, u8 L
# \+ z0 i; g& o. rFileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推# r$ }2 z* _. Q8 B2 n% X$ u' i9 m

1 b( v: z. R. m, T" w" f/ Gi = 0
5 s4 G, z1 K  a. y! ?
- d9 n* C% }! T6 a0 o9 {! ?" l. _Range("N:N").ClearContents% b  [2 G# p' b% M! N( o
$ A$ m5 W& l, T  R0 m/ I
Do While FileName > ""7 j) y; v5 P5 \) _3 L
4 d3 J1 g( G  Y5 I6 o/ s$ A5 y+ b1 h
i = i + 1
6 J8 V1 k( @( ^8 V$ O) H* \. V  u! l, K! \9 g: c& A, x
Range("N" & i) = FileName
* H) O3 b6 k; a' M3 h0 c* V2 d1 w9 P0 f- R( e6 R
FileName = Dir
8 F" z% p2 w5 ?0 \' W% _7 P: [$ U
( d- l' u/ Q- G1 ?1 SLoop
1 o# F  u5 e4 L6 r/ v; c! T. S; j! j& T* l$ }, V% R
End Sub

自动获取文件夹内全部文件的文件名.rar

17.06 KB, 下载次数: 4, 下载积分: 威望 -3 点

评分

参与人数 2威望 +2 收起 理由
闲人南居 + 1 热心助人,专业精湛!
大白小白 + 1 热心助人,专业精湛!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-5 18:20:06 | 显示全部楼层
收藏了,感谢分享。
回复 支持 反对

使用道具 举报

发表于 2020-5-5 23:04:26 | 显示全部楼层
“/B”代表的含义是什么?
回复 支持 反对

使用道具 举报

发表于 2020-5-6 14:13:20 | 显示全部楼层
这是个好主意!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-6 15:09:26 | 显示全部楼层
晓昀 发表于 2020-5-5 23:04
* Y) k+ l/ l$ D' o% i- u  Q3 w“/B”代表的含义是什么?

2 A( ]# K9 ]& Y1 s 捕获.JPG 4 C5 p/ c2 V) k
上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)
9 Q# \' M7 M, h2 a% Z8 w0 k
9 {) M+ @7 G2 w2 A' Z+ L 捕获2.JPG
  r0 H& _0 K" v' L上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。
4 D1 E* @3 k" c1 \" i. h' u0 `
回复 支持 反对

使用道具 举报

发表于 2020-5-7 08:59:27 | 显示全部楼层
收藏了,谢谢!
回复 支持 反对

使用道具 举报

发表于 2020-6-11 13:07:55 | 显示全部楼层
分享
回复

使用道具 举报

发表于 2021-8-15 10:01:45 | 显示全部楼层
怎么批量在文件名中汉字前后加上括号?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-8-15 10:17:12 | 显示全部楼层
妖洞两拐 发表于 2021-8-15 10:01$ e' {7 _6 T6 u
怎么批量在文件名中汉字前后加上括号?

4 h0 d; {$ @/ z1 x0 ~这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。
& U- j6 a+ S- c- X
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-5-1 22:28 , Processed in 0.061520 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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