找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: 魍者归来

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。8 U. C5 H9 r8 y
6 N/ }) B3 e+ W
所以这个时候就可以祭出【批处理】了:
6 d7 h) v5 [9 l8 x" R" ?! u0 i( E1 o4 b2 M/ Q; h4 S# Y5 b- d# r( K
1、新建一个.txt文件。
* z0 E: U# k7 o3 N: r  o! y6 [2、打开,输入以下红字内容(这里以统计.PDF文件为例):
' L/ N; E& c( P5 zDIR  *.pdf /B  >LIST.TXT
/ u* E5 q& a0 [/ f0 C- E2 K1 f
: L6 A! e# r% {; S3 d3、保存文件,将.txt后缀改为.bat。
( V  Y5 D+ W8 R) J) p6 K$ W$ A% J4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。
( t$ U- X6 i- [  i: a8 b3 N3 r; P5 F8 y" W! L
特别的说明:6 ]: e5 j$ c) \) E7 ^. d! I
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)8 A. }! n0 J. I7 u6 H+ y2 d. p7 Z/ v

! m4 {/ |- H# _* h% d, g9 [1 B5 U$ b3 `( j& Z& l+ Z
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖$ f8 p0 F2 p  ]8 {5 R
批量获取文件名
2 ^: {# j% J, G8 ~$ ~% F5 \这里分享工具下载链接:
. x' H) k9 H" f& f$ p/ v7 l" M2 ~+ U/ ]( P/ S) `% S' d% B9 J8 E5 O
http://pan.baidu.com/s/1o8u6aiY' [9 [+ c, l) k; ]8 |. B# ~2 h

' w: V, F+ ~1 Y0 @7 `+ F功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。! a( ~7 |7 \- [1 c! y
) E- Z& ~' J8 e- v, f
使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
, _5 c* e  o% y! Z% k: G) a$ K7 S: a
注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。
4 o* J3 G8 i' y$ v' I
7 W( b; a# w/ P: H; L2 N2 @授人以鱼不如授人以渔,这里直接上代码:
9 S1 c7 a7 X% b" Q
2 r$ T% v( o5 @5 O2 G3 S# F5 }Private Sub 提取文件名()
, j8 \6 w( r2 P) ^; z8 G% D4 _1 ~% H3 T; }& n& D! h; H
Dim FileName As String
: g4 a) }* N: Q; h* i& E+ j' w# M3 I7 i
Dim i As Long' @7 P7 [- g) _

# s# ?3 {# \& Y2 j. tDim tmp As String4 p' Z9 v. I3 i+ K7 v$ t8 h
/ B8 C$ I/ S! h# T- |- B
mypath = ActiveWorkbook.Path# ^+ g. K* |1 ~

! m. p1 H; i  {3 v2 _FileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推, s/ s. M1 ?" n8 F
5 W+ J( {1 V( a9 I4 S' C3 e0 Z+ m
i = 0
. `$ f+ D' P: X# n" X3 R* b+ D7 ]' u9 f
Range("N:N").ClearContents
4 b3 C+ |7 r! S( A) d  F$ E  e4 K5 J! I
Do While FileName > ""
  s& ^9 b6 F9 M& B, z: |" B) a* p9 J% n6 e$ v' a4 s) n( J) c7 d
i = i + 1
. v5 e* Y' x. R" Q/ ^, n
; a# h$ R/ G+ }, e3 YRange("N" & i) = FileName
' U5 }$ y9 ~5 K3 s" \, g& k) [# ^/ Y# c- Y4 U+ I; u( J4 U$ ?
FileName = Dir/ O- I% V6 d  ~3 l: M, M
1 u; r* i- D" ?/ T
Loop; d: `/ v9 ?0 K
/ s" F7 H1 @) Q) l- |. Y
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
5 k2 R0 r/ }8 F. {0 i“/B”代表的含义是什么?

0 J/ G7 F: y- }$ d* ]2 m- u 捕获.JPG . E% g1 u* R& P* _1 e) d9 _
上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)
, o4 h4 q1 W8 u/ G7 f, N( @
7 E+ P* P5 a8 p9 T3 U/ E, I+ G 捕获2.JPG
# G" |: Z$ H6 F. K. F6 O上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。
' [$ t) D0 _: m
发表于 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
# f+ L! _1 o' q+ o5 l( c; b怎么批量在文件名中汉字前后加上括号?

  ~1 \2 b2 V# V6 b# x这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。" y1 Q6 D* o* U( G
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

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

GMT+8, 2025-6-16 21:31 , Processed in 0.087318 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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