机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: 魍者归来

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。
7 L( L- E5 J8 J( @6 Z, _; r0 G: Z* Z% g. T: K* l
所以这个时候就可以祭出【批处理】了:" R6 p) y1 @) g2 |, [

! U0 \. U0 V% `5 v& w1、新建一个.txt文件。, |3 Y: q* a. h! Z
2、打开,输入以下红字内容(这里以统计.PDF文件为例):
( O9 E! `5 F& D7 ]DIR  *.pdf /B  >LIST.TXT
9 y% m; y& c+ {6 |3 l+ |
9 V5 d# C6 |/ {+ O/ w3、保存文件,将.txt后缀改为.bat。
. W# g( G, @' F& O9 e( K4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。
7 f0 K" O% Q) F. V
5 \8 V% X9 r9 U, ?6 q) k特别的说明:  W" r" Q9 q- X7 _5 ]3 ]
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)
    4 x  C% z. b( |7 d

+ T9 f, I' d, _) T0 V( z2 H# x7 ~
5 d2 a; ^5 g, b$ E1 `6 K0 \
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖9 ^2 i$ \8 n9 `
批量获取文件名4 r# V# d. ^& C) M  x  h
这里分享工具下载链接:
' k4 m7 I5 ~  q* A* {6 L* b- @1 E' {& k$ i) A
http://pan.baidu.com/s/1o8u6aiY
) }+ p' F  G% ]5 b6 J/ _: Q5 n) D& y
功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。8 Q2 W& V4 \( u; }3 t  N7 o( u+ l/ P
- _: _* Z) N3 @0 I( ~' }; R$ N
使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
6 e4 _) K& B9 l/ s' T, N( W
- n& v$ ^! r, I- q4 V+ d注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。4 ~& B- N% z7 I. U% j" ]

: t  n' q- \# j( k  P" A# T授人以鱼不如授人以渔,这里直接上代码:. M+ N$ B8 P! X+ X$ f4 x( \) E

0 \7 l, g' O6 U5 {6 }& c  NPrivate Sub 提取文件名()
1 ]# h8 o" x/ W5 }
; L% A+ x( O& s, RDim FileName As String
! D3 `9 q" n- i' r2 ?) E
- G. B4 e6 u" Y7 p. r( cDim i As Long* P- ~: r& {. M$ K
6 Y. E+ }+ K- Z5 x! W+ h
Dim tmp As String& ^: S  Q2 w& O/ r: M
# X, k# R7 w6 z5 Z- H
mypath = ActiveWorkbook.Path7 A+ b- s) W, j/ d
* M. |8 e, e; J4 b: p
FileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推- E% `2 w" C6 N; D

: w" \' g: g- pi = 0& U9 e1 w+ }/ ^) W' O( r0 U

) R5 h& U* u. q8 _2 [  v) bRange("N:N").ClearContents' v% r' y) y% j" L& o: N+ q. k6 p) w

' Z  N# Y3 R2 _5 ?/ x' B% [2 eDo While FileName > ""1 n. k, j8 |& a. V3 J! I& Q1 m
" \& {+ Z1 R+ @, p0 P
i = i + 1
# V( \$ j5 ^' r! H3 M: y3 r2 t$ W, w
Range("N" & i) = FileName
) D) F5 a6 j* I4 A) l4 G
7 l* T) H& X0 Y' F' k: gFileName = Dir
4 C8 c) L6 _/ E& T
# P; l/ `2 M6 h6 g+ q/ VLoop% A. m! j0 _2 H0 Z) g: f" b

' @4 O0 `( n  i9 N. tEnd 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
( e& s9 ~& b$ Z“/B”代表的含义是什么?

6 B& T, m$ Y6 T  n 捕获.JPG
. a, a% W8 C2 e$ t: v上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)! o' m, h) F# `4 X9 x9 h0 m
$ p9 j) ]: B/ o( Z" r
捕获2.JPG 4 h, H1 c' e  k6 r4 L
上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。
0 e" c' M: e  J( n& c8 z4 |6 @
回复 支持 反对

使用道具 举报

发表于 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
; S% n) t5 h* g, l( N0 Y/ I怎么批量在文件名中汉字前后加上括号?

* C7 a" F' w; V0 R5 J) P这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。  I1 L7 ?/ n! {8 Q% O, J
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-1 22:33 , Processed in 0.091478 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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