找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: 魍者归来

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。
) k; F* F6 g& `; `2 b6 }9 a7 o/ p' |( k0 G- h  K2 l4 {: I& K
所以这个时候就可以祭出【批处理】了:
0 D  c4 k: Y. u, K; L
* l1 E: K) ~* D( U  \2 S1、新建一个.txt文件。9 F! j; w' H% ^$ T
2、打开,输入以下红字内容(这里以统计.PDF文件为例):
* m1 u% `9 z) A, g0 `% C4 `7 mDIR  *.pdf /B  >LIST.TXT* z' Q& v: y9 `% e" E5 i: O

) F: J) O* u. s3、保存文件,将.txt后缀改为.bat。
9 Z- G9 z4 B0 \2 L8 G1 s! D+ Y4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。$ ]+ B/ G8 \. Y' T

# s$ w5 W( D8 V( \! _3 T" S. H. X$ ]特别的说明:
$ T5 k) C. |  \  u7 {
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)9 t$ S7 n. M. h# p

- M. c; b5 s' y# Y7 M; O
4 S8 {- E, m" j* r' l/ _7 X
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖2 z1 j7 Z8 J6 X- Z) W
批量获取文件名
. s- t* \. w# z; I+ b% W, P这里分享工具下载链接:
& @9 p+ z' E6 [3 q. W; i1 z1 p# x
http://pan.baidu.com/s/1o8u6aiY# F- ]- ^1 o) X5 F1 N+ d

6 Y( c- Q; X' q0 z9 N& |& S功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。1 K3 g0 }8 K: I) v9 j$ U4 v
. [) p4 {, y8 @, P5 X) b4 e
使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。, G* i" ^: E6 u  {7 Z6 d4 H

* w. Y8 z$ k" @注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。) `) q+ o6 q* B( c7 z8 [$ n

% I0 z# J) D6 C授人以鱼不如授人以渔,这里直接上代码:7 r3 }) w! W- q

* R6 l! u$ d1 P# F1 M. N0 o9 J2 HPrivate Sub 提取文件名()
+ a  h! n2 D& K; }$ @9 T1 N: S% A3 l( B0 ]8 R
Dim FileName As String- i4 m# Z* ~' I+ g8 n; {

% @) u" n; [- z- x9 O0 }Dim i As Long
* i( Y9 h" E0 u$ ]3 E7 j
: Y( F* _4 C0 D( |+ U( TDim tmp As String. w1 D9 N4 V9 h  ]( T4 b

" g7 [/ u% q5 gmypath = ActiveWorkbook.Path
0 z( w2 G1 v& l8 [
# ?& U* N# _. LFileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推
) r+ I' F2 @! O6 O$ u$ G( V/ X" m6 k8 @% m* O  d
i = 0$ v: s) l+ n3 u

. y# I. x3 k' @# Z3 {Range("N:N").ClearContents
, H. x( O+ d, @" I) P% a1 F* `0 ]
Do While FileName > ""7 v% y* n( p: C
; v; Z3 S. W9 `$ j& W& X& A
i = i + 1
& D: H% H2 }( ]( Q, X4 j# i: {; [4 J: S1 j
Range("N" & i) = FileName, T' z, P8 c5 m& a- S6 e3 L, o+ t

3 k& d. i1 H+ o% D2 jFileName = Dir8 i; v; e! H: v+ T

& h  s: v) s) lLoop& K# S0 I. I2 H2 n3 n2 Y
  Q) ], g4 i! V: i" \1 ?' |
End Sub

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

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

评分

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

查看全部评分

发表于 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:045 X( U0 R" W4 V$ x. [
“/B”代表的含义是什么?

8 U3 W: s+ S' { 捕获.JPG
6 C+ ~: O3 a2 p上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)
6 j7 y3 T/ _  p# k: n/ v( d4 y& e9 y2 f& O' n$ N# ]
捕获2.JPG 9 R3 X' u' k4 I* R: i4 K/ p
上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。% m- t. z6 o& ^* n5 B0 F( m& M/ r
发表于 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
( ~9 ?) _! f& f" O/ ~" L7 C7 ~怎么批量在文件名中汉字前后加上括号?
. \* q, G/ ]4 f) U, T
这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。
( L) F# d( t2 P- u+ m( ?
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-9-4 04:55 , Processed in 0.076685 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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