机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8084|回复: 10

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。: M; s7 M' z5 X. y- m7 ]& }; j
1 d* `% _4 l% p
所以这个时候就可以祭出【批处理】了:
- ]' P) O0 m! {/ \% ^' M/ u4 z
! |& @" z; }$ _1、新建一个.txt文件。: ~2 j. g( F8 ?6 H( e% a& [& d
2、打开,输入以下红字内容(这里以统计.PDF文件为例):: w* O+ Y" D) e9 f! J9 `
DIR  *.pdf /B  >LIST.TXT1 r2 P7 p' g; P+ [; V& k

0 X/ B) y0 c- P  g% t4 ], I  R  R3、保存文件,将.txt后缀改为.bat。1 ?4 I* L( f: t! Q0 W- S/ T
4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。
5 V" k8 c/ h5 @! [7 D
3 ?) y, f& k- d/ B特别的说明:9 u, V2 f8 m) |9 R- P2 ^* f
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)$ a: _' g1 v4 r9 ^6 a, C+ n. [, @
/ r. A9 s; l4 O8 L4 b

! c, F, u8 J$ h7 D: ^2 c0 r
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖1 {& k" O6 C: D5 ?" {7 }1 w
批量获取文件名" w. M$ @8 ]: l& Q+ T7 f+ f
这里分享工具下载链接:
  a7 J! N. B+ e' p: P: p9 V+ ~! a$ v3 _; r  J' G3 C) x% I# S
http://pan.baidu.com/s/1o8u6aiY, Z3 r9 i( T( T& a9 q: B& q

7 k1 [( |" W+ H+ y1 H' Q) s功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。% P; |/ w2 m2 B  Y- c" A8 M2 G
$ D9 z& u1 k3 n7 A+ n
使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
9 F( Y& P$ ]5 ^1 D, {0 x1 v9 Y  z* n; o7 C* u$ A
注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。" h& \! C) C. N; w0 n
+ B5 M5 E: L  K8 X/ A$ H* J
授人以鱼不如授人以渔,这里直接上代码:2 o. ]. {* G3 v* v1 k
* V- f/ a, s/ h# A
Private Sub 提取文件名()
  p* D1 M* m# c; W; C- J( `' N. g6 [7 U& J5 Q
Dim FileName As String
4 ?; i- _* w' _5 g5 B0 B% \  [
7 p5 {) v' A& M/ z' A9 f! pDim i As Long
- W: o" _( F; D! _, N; U5 ?: ?/ K) x& Q* t# P5 A
Dim tmp As String
! @6 ~1 \- e' t4 e" B) e- g, i
9 @1 j; a4 n! x8 f5 s4 Emypath = ActiveWorkbook.Path
* A, a2 T! C& o9 h$ r  `/ R& z) Z* d  R- a
FileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推/ r: l$ u5 r% x( |

/ \! i" T5 Z  I7 p& Wi = 09 y5 K1 {7 j: A

* O9 z  t5 j6 FRange("N:N").ClearContents( B5 Y8 D7 [6 \0 \! J7 N( x
, J) B& k; P% E
Do While FileName > ""( y3 ]1 `: d7 d" [* l% y
# L0 S2 g5 e/ [3 j) @8 C
i = i + 10 ?$ w3 E/ E0 ?3 j1 `
, v1 s' [6 w" t) j
Range("N" & i) = FileName1 o0 a0 _) \, q
$ r+ t# w& s, g- T3 O1 L
FileName = Dir
" k; E* x" _( H( r* Q* V2 ?1 k
! i" p, B2 E0 v/ t6 RLoop6 _$ T+ i; {( ?3 s2 ^7 k

8 z2 w0 V* |. N' A$ jEnd 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
9 ?2 Q. r( v% \“/B”代表的含义是什么?
7 I9 k# q& j: J) ?; J5 q- m& u
捕获.JPG * h1 K1 ]9 O9 L
上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)
+ |; s" x. e, W8 d7 l$ K; ]3 |, `$ ?' }4 v4 f0 o& _& ?! C, i, ^
捕获2.JPG 7 d# w- k( z' e, \( w
上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。1 S$ D2 U+ Q* X& f. ]8 T( n
回复 支持 反对

使用道具 举报

发表于 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
5 f3 O1 t! a' U: C: S5 S! N, m怎么批量在文件名中汉字前后加上括号?
. g7 N! F* _/ O- `- H# Q; x
这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。
' f' r/ j' |0 b& x. u1 _8 k. B
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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