机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: 魍者归来

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。9 R/ E4 Z$ z2 g. t5 K

- u/ }8 b) P7 w  u( G所以这个时候就可以祭出【批处理】了:4 P- w. p% d, S' m- T$ \+ o

: G1 X6 R& @0 X6 H; P7 X' `1、新建一个.txt文件。- X& L# Y5 v' d8 c5 k* x- i
2、打开,输入以下红字内容(这里以统计.PDF文件为例):
1 l4 L0 B! X. T& ~* H3 ?DIR  *.pdf /B  >LIST.TXT" k; O, i! A5 J! ^$ f
! S% E1 t5 B# U( X
3、保存文件,将.txt后缀改为.bat。# S6 p, C9 E7 ~& o3 E
4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。
5 }7 ]: i  ]6 Q+ F
- E' `5 k( M8 F2 @. d5 J特别的说明:+ |1 `8 _& ^! r4 W2 ]3 f
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)* V* P: ^* ~9 b5 l
) B: y8 @" s" c! o! Q

0 }# C: W4 l. ]$ ~5 P
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖/ K( S" y! P2 }$ k+ |* Y! V
批量获取文件名8 I: ~- U' u+ d' v. d# y! g
这里分享工具下载链接:. j4 Z0 b+ ^8 V5 s
% X6 |  P9 N- a% Z8 o
http://pan.baidu.com/s/1o8u6aiY! c( B  S  y% z: A% S( N0 ~
* E0 a) X" j# [  f0 h: x/ T
功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。5 D8 q" v; r+ c
/ N  a% @- }  n) \
使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
! C  E" n0 ~* b& J0 Z8 G$ I! x1 S) V( _& B
注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。. F, o2 n' q6 J1 I2 d; d8 e1 _

7 f+ {# E& \' k% i$ Z% B$ i3 l授人以鱼不如授人以渔,这里直接上代码:
/ K* a. N8 \9 B: h) o: ^. D
; b7 ?- s& u' p1 s- g/ t0 u1 f; fPrivate Sub 提取文件名(): ^3 |1 D. E4 E9 o- ?* |: x3 k
& f! B; B7 K6 i4 T
Dim FileName As String
; |6 d0 N: V4 o8 E1 T6 t
7 m( E, V/ ~# d6 V  \: _) ADim i As Long
1 L7 ~& N" S; G! T
0 S9 e+ v( g. LDim tmp As String
; A' z: W% L! q6 b* e0 z
! p; ~. u; t- R3 A) O* b& J, qmypath = ActiveWorkbook.Path
" f4 Y0 U# b% z
" U" {. V% x$ D# m$ \/ BFileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推1 |. z1 {5 R5 r

) S$ z5 B; ~; c6 S% A  ^) hi = 0
. p! m+ p- a% F; Z1 T8 e1 U
* ^1 I2 y& ^4 b9 Z# ?Range("N:N").ClearContents
# Z' ]% P+ _1 M2 X0 x+ |- t8 g& e+ c; S, @" @* g; @, u# y! H
Do While FileName > ""! V" b+ r6 ]1 F- H  x& C

3 z" Y1 }4 ?+ L0 y* L( d: |i = i + 1
* ]+ `8 y' G4 ?( [
; V, O! p- R, ?5 D) c/ aRange("N" & i) = FileName
3 O) d; b0 U! t! W, C: d
$ t, V, s$ G! a1 O5 vFileName = Dir
7 y5 j$ ~5 m4 X+ _' m; K# b- k; w3 R) v, V: _+ U
Loop4 l3 ]2 X  Q6 _
% a) t7 l" ]' G$ \
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& r5 s& P! k6 M* ]) _- ?0 [' }4 W
“/B”代表的含义是什么?
2 o2 w; _) M0 g* Y6 o+ y# V
捕获.JPG . \& Z* T6 x8 d* K* d3 k% {
上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)
# ]  W7 {* y9 u' h
1 T1 s( ~* s. u. {/ t 捕获2.JPG
; |; g5 i" K7 t8 N上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。
! P" U' W- u# [' X8 w& l0 `" a
回复 支持 反对

使用道具 举报

发表于 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. T( {3 L' b9 G' F- |7 I- ]+ I
怎么批量在文件名中汉字前后加上括号?

5 Q  R* g$ z/ s$ U这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。3 H& ?$ S) r7 t, z/ n2 r
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 14:27 , Processed in 0.063855 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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