找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8776|回复: 10

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。, O/ ~3 S& v; _3 B$ G2 p& e
/ h3 U2 j) N0 a4 x8 t/ s' u2 z  G
所以这个时候就可以祭出【批处理】了:/ r$ M! j3 o$ l# k9 ~$ N% g: w) p; k

4 R0 T/ I# g6 F7 @. r+ U5 C1、新建一个.txt文件。3 I3 t, H8 i' i
2、打开,输入以下红字内容(这里以统计.PDF文件为例):
4 H# P) K8 l7 H: G4 xDIR  *.pdf /B  >LIST.TXT1 @7 z, W4 e& ?/ m: b

/ O2 V& C! t; q' D; C/ v/ i# R3、保存文件,将.txt后缀改为.bat。0 Q5 [5 D! u. V  p$ v. p
4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。1 x$ @" ^. I2 F" x( p2 h. z
7 l, a0 B# V/ E8 q
特别的说明:1 x1 |& |2 Z: k! m* s5 I" _
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件), I7 c' x1 e# f' `5 v6 R) q
" u8 A1 c) E$ ]6 Y4 m7 {
! M- C) J6 E2 T# a' M; h
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖
9 w9 u6 e: u, V* s( R1 }1 H# `/ m批量获取文件名
4 f* c0 P& P+ `这里分享工具下载链接:
8 Q7 ?. x. w7 w! [3 R0 W/ b1 Q6 X2 B% ^) @9 w" j
http://pan.baidu.com/s/1o8u6aiY
( r- \3 j  ?6 h9 i/ v/ _% J9 ~! D. ~' Q# M7 K+ t
功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。% c0 l4 @3 U8 z+ o  ^( H' C

4 `( T" j* t7 q1 |0 G7 Z3 }1 f使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
# \$ S. r: H4 P! w1 b  s* j; ?. ?9 K- Q$ j6 r6 A" Q6 T, m
注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。
+ L+ Y9 t: u. `) I  ]3 M
" `9 P; k; T1 S# v; K授人以鱼不如授人以渔,这里直接上代码:
1 ?  Y) H! q5 k- P
) S6 n& J; E' K% T: j5 FPrivate Sub 提取文件名()
; c9 [  Z  l2 N9 Y
) h/ s( {8 x* `( ~  ^Dim FileName As String
. Q5 \$ ~, L2 U  u1 g2 j5 a+ P& p3 W; g! D/ ^2 y- A/ K
Dim i As Long0 `; z6 l# H  W/ U* l( q1 p

8 D) V; \; m2 [Dim tmp As String
' g% L, l9 w6 A+ B0 M# F! J8 Q! [, C) Y4 }' o! ]  h  I
mypath = ActiveWorkbook.Path: M$ B$ t) ?% E9 V  b+ Z: \

. S: \4 B* @+ G6 |FileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推, j/ |7 F# o4 U; y! Z1 P

4 M( s! |: T# d; K4 xi = 04 n8 h* Q* K- |) S

9 b1 x" ]6 k& W- S0 a+ YRange("N:N").ClearContents+ z- B( m2 r% x8 ^  K. E) V5 ~

" i+ ~! R8 P: qDo While FileName > ""  I' y* w6 L) V7 K# {3 ~+ @

" p/ K/ ^: ?* D; r! Bi = i + 1& c5 C8 H6 B; H$ x0 P8 D7 w
. }9 ~' ]/ a) E, f8 }* i  y
Range("N" & i) = FileName) [, v2 [, l: n& _! a( c( l7 N
) Q( G  e( L  |) ~9 P' c" {" {
FileName = Dir
! a$ \6 E8 n# k% X  v5 R
+ J# o6 b4 s% h$ X- V, @4 j$ LLoop8 b9 M: v7 \* L0 d
; {# L3 U2 d) \+ A, ~9 v
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:04
$ M- b! N( ?: z/ W“/B”代表的含义是什么?
! [* \$ E& a0 I  t' u1 W, N
捕获.JPG , O, ?* t' H5 h: w" i
上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)7 f1 K7 L& C* F- M

* y0 r% t! P$ G  |1 S9 o: y 捕获2.JPG
% B6 ]. G  [. l0 Q上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。
9 C5 Z4 D9 C5 G/ ~+ w" E6 W, h* i
发表于 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
+ {+ k5 Z$ _) ?怎么批量在文件名中汉字前后加上括号?
$ P% P  ^; O! I4 L
这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。
: L9 T  {9 [$ J5 q5 g6 {; e
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

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

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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