机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: 魍者归来

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

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

. b1 o, m/ ~% T. M8 s" G所以这个时候就可以祭出【批处理】了:
9 o% ~6 u" B, @
" c- ^$ b/ h" }# W, q1、新建一个.txt文件。
% k! E( }! l9 l9 G" p0 B2、打开,输入以下红字内容(这里以统计.PDF文件为例):1 v2 [% ?/ N" v! R
DIR  *.pdf /B  >LIST.TXT
3 u) `9 \" o" F$ h
. m/ q6 g2 o+ Q0 q8 g) q% D; Z$ X& b3、保存文件,将.txt后缀改为.bat。
9 A. r9 h6 E0 n2 G4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。$ `  E6 e! b( F/ D( h! w2 p

& `, @0 P/ t3 P8 A特别的说明:
: Y: d) ]- G( M
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)- e# u' z1 o3 l. c: i, F/ ]
2 |% p# ~  G6 A, I
1 l. M+ z* W+ B7 }6 i
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖- e- G0 |# ~4 t* R7 J
批量获取文件名3 U2 e0 u5 q/ M& }' |% ?
这里分享工具下载链接:
0 e5 c/ m  K. `( X9 M) j. T* j3 |/ w% K8 q8 V+ N0 }$ @
http://pan.baidu.com/s/1o8u6aiY: e( J: C  {4 l( T! a& A4 I
/ P8 b$ o. O  x3 Q* ^$ k
功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。
, L6 S( {- W' K$ N" H
# P2 \: }; E" ]1 f5 H- z8 u使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
$ i+ b# i* g4 M! t% }/ \0 s/ B6 X1 ~. z
注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。$ O- O( D  c% Q& v, B5 Z7 i0 u" F

# \# F" ?; [) e$ j8 w- D" J6 D授人以鱼不如授人以渔,这里直接上代码:
3 U+ g' Z3 }3 G5 C* K! s3 w
4 v2 N7 A2 c5 E5 {3 |Private Sub 提取文件名()0 e) S; M- N7 ]* |) d6 A
- N& A- Y3 B3 T3 J7 R# t; f
Dim FileName As String; V# ?5 w, Z/ {$ G! B* D
3 q; C# f! V6 Y8 L2 {7 k
Dim i As Long
7 h4 g' l6 ], t! V" W* G7 V; p( j# G0 p& k
Dim tmp As String/ q6 W4 p* U6 p. N

0 C; D1 L5 w/ @0 _9 R: y- F, Dmypath = ActiveWorkbook.Path
$ D- j$ [9 J2 T: z5 j2 s( O% d' |8 U9 |9 b7 o; b
FileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推+ m* G  o8 D* f+ R& Z6 F
0 y! \% Z. u2 @; ^! n; ?8 c
i = 0
8 _2 X2 f5 b7 m4 Q4 c! w
1 u) O9 S: i& Z! }8 A+ q* mRange("N:N").ClearContents
* U( `0 [# S3 A( ?& j8 y; m# e4 j5 a9 {8 Y! P. C8 g* r5 q
Do While FileName > ""
; D0 `: ?' B* Q" a
+ ]2 ^/ k! j7 n0 K! |0 hi = i + 1' T2 y/ j8 F: n8 m0 s

, ]4 w  M& R5 \8 F$ ]! [  NRange("N" & i) = FileName# w) w' V9 d) s- I: u* m0 F
% Q1 j& m. J4 `4 w  u  g
FileName = Dir" ~9 c# P* s  B  \; f

3 }9 x* I& {" V; W2 ~, Y- {( tLoop2 L9 t) T& E8 h% z
0 ?2 a# w2 M% f1 `* ~' l
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; q* Z( ]) ~7 F5 x: Z2 a
“/B”代表的含义是什么?
9 C8 _( l2 b* A; ]6 ]0 P+ C
捕获.JPG
' ~# {0 J9 ~/ ~  E上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名): G2 F' j, _2 B

' ~1 n6 z' z, {9 ]' q* D1 Q 捕获2.JPG
1 z1 i& o7 `& A0 I  [上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。; O6 [, |8 `& q! e
回复 支持 反对

使用道具 举报

发表于 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:018 ]# V% o) ?+ u1 q2 M) ]6 c0 D3 B
怎么批量在文件名中汉字前后加上括号?
! r5 G* r6 |# N' m" R4 P: u
这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。( b+ e# F7 L6 y3 l* p  C$ p7 `& z
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-26 17:37 , Processed in 0.061555 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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