机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 8277|回复: 10

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。
+ r. q3 Q9 f& _9 ?8 p6 j  T$ G/ J. M$ ~6 R+ Q: C7 J0 o# |) D7 Z
所以这个时候就可以祭出【批处理】了:* I  ?. U" k4 c3 }

! T: ~- e8 u( T7 N% j$ B' Z1、新建一个.txt文件。
' I3 d  @9 W" c2 P  |: R/ C. I) \2、打开,输入以下红字内容(这里以统计.PDF文件为例):
; _$ F, f0 m3 E. n4 ?/ ~' _% `DIR  *.pdf /B  >LIST.TXT
: s8 `% v$ T/ `$ t
  J& z, Y6 t1 L3、保存文件,将.txt后缀改为.bat。. F5 j# u; s- H8 t4 n, H0 y& u
4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。
, m( j: }9 r8 a# O& Z$ H+ P/ h! z/ h) H
特别的说明:
4 U* H# g4 }8 A0 D( ~. Z& y! L
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)$ M, K% J; f* M; p2 F6 l  U# r
& g, S' k, k. n) N. R

0 [$ u$ S3 ?3 B" @8 w! ^: ^
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖1 M& X: u( D& ~8 g) k
批量获取文件名% S! \! V+ j1 R, N& @) m! a
这里分享工具下载链接:* w0 O, y8 T; b" L! ~$ O5 ~# x
# f5 x3 p3 M0 t. Z, k; ?4 L
http://pan.baidu.com/s/1o8u6aiY
/ h% O1 [& {- ~" ?) G1 e; v5 f3 N! y. P
功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。0 H1 F2 [2 m+ t" o4 s6 s
4 X  A; X& h) g3 D
使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
; H$ \7 s& k" E4 k; H
" X+ |7 M! d# I4 o" Z& B# ]2 E注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。
; i6 ~* n3 b1 N4 ]5 j- ~; Y! }5 c' E* m+ G3 e  y
授人以鱼不如授人以渔,这里直接上代码:$ P# A, C  `) e
! m3 Y* E7 D0 N! p, p4 `- l1 S
Private Sub 提取文件名()
7 G6 n+ E5 s# X2 N6 B2 b* F0 X* M0 W4 D" I5 [
Dim FileName As String3 Q: \/ ?+ [1 t- E" R: Z& x" i8 _" `  m
5 d6 P3 W+ J% _  ]
Dim i As Long" \3 `" J5 \" s, c' `7 H1 V1 G
& D, s' \: ~4 V1 g9 I7 M7 c4 u/ h
Dim tmp As String
) W, I1 N2 X9 r$ U5 F+ }" k8 ^' e" ?8 {
mypath = ActiveWorkbook.Path
8 @$ h! _- B! x/ F0 l  y3 x
! W0 g  L8 p/ o; h# @- G9 s6 K: S# rFileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推
) {: K! u2 ]" u2 |! t- B6 H, g' J: n- _! t2 T9 c- q' W4 V
i = 0! |, M$ C2 R8 w) a& x. c8 [
" _  z) x/ E2 Y) w: n+ F' m8 ?; f
Range("N:N").ClearContents9 Q! p( M, U4 f7 }; v2 E
! h6 a6 Q: n8 z  H" W' S" ?# R4 ]
Do While FileName > ""' {# r. {. v3 g' T# D  |

8 \0 }/ I' p* W- m  ki = i + 1
4 }% B* K9 F; o% g1 _/ V/ {# F
Range("N" & i) = FileName
" I0 w; Y7 I( d# S0 L5 V/ G! k, s0 C- g. q: @: g
FileName = Dir
8 Q) W- p: Z  o. o3 `& [3 X7 a6 b7 p$ j; }; x: v" @
Loop
& I4 ?8 x8 ~1 N
+ X* y: c5 H- N+ W. qEnd 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
4 F  C0 {- S( I" H( L* s“/B”代表的含义是什么?

2 g; R% e# x  Q( P 捕获.JPG
. Q, L3 F4 T6 c& ]上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)
# q+ b; B, A8 T0 O( e# b, d! C/ R- M0 d( S4 X# d
捕获2.JPG
; Z1 _( G4 m- y$ j* ?上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。  m2 R% c  x* ^$ U
回复 支持 反对

使用道具 举报

发表于 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% x) U3 W  }; z' V" \
怎么批量在文件名中汉字前后加上括号?

; P: B9 ^6 p1 |: E2 I- u' j$ @这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。
$ Q1 z' b! c- @) F: V7 @$ k( }
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-20 07:16 , Processed in 0.079313 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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