机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7481|回复: 10

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。8 w* t7 Z' h! l4 B) e

$ w6 B" @7 p) P- r所以这个时候就可以祭出【批处理】了:
. c; j. a% c0 U
. }' n- O" l4 A( b8 A3 ^1、新建一个.txt文件。- G5 t7 Y8 U5 S1 ]4 C- m
2、打开,输入以下红字内容(这里以统计.PDF文件为例):5 F( N& V$ q( _0 t
DIR  *.pdf /B  >LIST.TXT
/ s* n( X% E9 ^% c$ ]3 D( n' k; r$ A3 C9 a. u
3、保存文件,将.txt后缀改为.bat。' J5 t- ~7 B4 _: s2 M" ~. b: `
4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。
$ B/ v' d2 J6 y, x( x; C- z* V' y- @! ~5 ^' m* w
特别的说明:" N; S7 k- B4 S6 R! b% g9 o% G
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)& x+ i6 _; \7 M3 J6 ]/ _
4 C8 {- N* w4 I* x! n

$ f6 I- J' D  V  R3 z
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖3 Q1 w, S" O9 c0 H* h
批量获取文件名
# L0 V6 M/ S% M' X这里分享工具下载链接:
" k6 E  n% d8 u; w. _5 k; {% F1 V# e4 W' C; u
http://pan.baidu.com/s/1o8u6aiY
# ~) y7 z: z' h! g8 i/ @% ]/ B9 F$ g
功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。* r5 ]. O( c: _4 z
2 y" Y6 h4 G6 g5 G3 i% A4 u0 Z
使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。4 E: u$ a8 m+ l5 @
1 ^" O* _3 v1 \. O. O- V
注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。
- U+ I  |1 S4 _; K
+ ~! o" ^1 A: `) {7 Y授人以鱼不如授人以渔,这里直接上代码:
& }( {( b4 C# h; h! n3 }; f. @$ D& [# ]7 P1 n
Private Sub 提取文件名()
& v5 {2 f; M" \/ l
, C6 m3 k0 R, g5 D) lDim FileName As String
! @1 I- Y' x1 u  U3 v6 l
! f; S; H* k  |1 o& s$ V( {- dDim i As Long
: \: z! q: S: o; F$ @
+ M1 w/ U1 P  H: X$ GDim tmp As String4 |7 g; @! v2 W% t5 f* d' Z

, U/ m0 _' G! Q& E3 k+ Z4 zmypath = ActiveWorkbook.Path. L4 L3 F  C7 Z& r$ J; \
- F9 J" k0 w+ @
FileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推* ^" |( G3 \" e) N3 x
. j+ r$ R' l1 r% S1 q. k* ]/ Q
i = 0
$ G! O6 _: D: N! v2 N
8 G2 M( w+ T4 ~) M. q+ |- q3 cRange("N:N").ClearContents/ p# x- y6 M) U
: f! d# ^% n# R9 |: t; x7 x  W
Do While FileName > ""
2 ]- \3 z7 }# i2 [
3 S! C; r0 y( ~. Q+ Q$ C- ki = i + 1  k7 Q. a6 c' A4 Y: ?
' y8 j) {/ r. F. I5 u' q
Range("N" & i) = FileName$ r6 k5 |2 ^" j2 |9 D& d, R
# \5 R9 G+ B# O! Q
FileName = Dir- h9 G* L3 O! ~. n+ W1 \# R. M* _/ @
% I8 g8 M1 S' j9 W% E
Loop
( j) V- Q: L* }( ^1 Z2 a! c" G2 c% D2 ~9 T* z
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+ ?2 h+ x1 c  [9 {
“/B”代表的含义是什么?
! u8 ?8 f; @. ?. y$ g
捕获.JPG
6 x6 f$ j/ \% m5 k. x上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)
! F# [: x3 w! ~  H& Q9 l0 b" H+ {! W) U0 _% [( I3 [  I
捕获2.JPG " x5 G0 }, f* U$ m
上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。
/ D( y9 M$ I( i+ v& l: p
回复 支持 反对

使用道具 举报

发表于 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$ \$ d2 _1 y/ P9 T8 d# ?) v$ k
怎么批量在文件名中汉字前后加上括号?
$ C+ p, m% _/ a( m- [
这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。4 n0 P$ L' g0 W
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-8 11:20 , Processed in 0.064153 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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