机械必威体育网址

找回密码
注册会员

QQ登录

只需一步,快速开始

搜索
查看: 7750 | 回复: 10
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
1#
发表于 2020-5-5 15:03:33 | 只看该作者 | 只看大图 回帖奖励 | 倒序浏览 | 阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。
* D5 s6 X2 k9 I1 q* u3 v/ ?4 C- R: Z; @: {( m/ A) x9 F% e4 B
所以这个时候就可以祭出【批处理】了:
; w7 v2 M$ l, g1 L, k/ h9 q
+ b. s$ f/ S) A4 b1、新建一个.txt文件。: C( @) h+ t0 v8 F
2、打开,输入以下红字内容(这里以统计.PDF文件为例):, f5 m+ a" u% ?$ ~
DIR *.pdf /B >LIST.TXT
0 f% X S+ W1 R% U, r. U* J" T, D- h6 l1 Y2 R6 X/ J' h% D2 d5 L
3、保存文件,将.txt后缀改为.bat。
$ Z+ Z- {* Z2 |' m/ |4 E4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。% z! w6 ^' j w! D c, g" M1 e

1 l2 L9 S) ?0 |2 ~( K特别的说明:
1 u |5 t/ m# b, y
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)* a" A! M4 X. f8 e3 e! Y# R
) _# ?7 s" }3 p' s, k1 n

% F0 W% @, h t
2#
发表于 2020-5-5 16:10:43 | 只看该作者
转帖
" N' W6 {" o, Q3 o y; k批量获取文件名' F2 n8 K% K- G$ J- h; z( \
这里分享工具下载链接:
. n Q8 m% l/ `$ ~1 z F! w( u8 }6 r1 T8 @' H2 C# v
http://pan.baidu.com/s/1o8u6aiY8 @9 O5 u1 K6 M* R+ r! o- [: Z: z
; q; ] B, S Z' X
功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。' w& z2 b& k5 ]. J7 d' F W+ Q

/ }% h, v Q3 @1 }/ o, f使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。8 K& z F0 {5 |0 X( ]7 |

: Z7 E2 ?" H7 E) ?: q% c- o7 l, p注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。9 M( C; q$ N; K) a0 ?2 F3 L! ]6 q
: ^ G- ^4 u6 c! F+ o. ?, Y- M
授人以鱼不如授人以渔,这里直接上代码:4 Z0 ^3 e' n9 @3 m- |5 a

2 T$ R! J z1 O# j( DPrivate Sub 提取文件名()
+ L# l+ r D& j G: g* K) s
6 ]9 H) C( f3 p$ K( o% oDim FileName As String
" m5 J% q3 V. _$ X& G/ E, e \
0 \* L) J" `! `' Y4 \5 UDim i As Long8 @3 K/ L+ m; }+ g& G
) q* n1 t; E/ c, c+ O4 b; L' X2 d
Dim tmp As String2 Y! J2 D/ a/ {2 |9 o
% M! z# K+ L7 I9 Y& L
mypath = ActiveWorkbook.PathK( z1 T" }( f& _8 U0 p
. x! h9 F% a" K% X. b4 `! {( ]: J
FileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推/ _0 `' G5 z" q

% o3 B. w" O. M* i3 a7 M% Q ti = 0
& z% Y' H7 R; d. ]% [6 x( r( S$ |. `9 o2 z; ]9 U
Range("N:N").ClearContents
1 s# n. S0 H: K0 |2 \* I- ~$ t# O" W- k6 m! x' h
Do While FileName > ""$ a' w; J" \2 b3 h

( f6 E7 y3 K& v& Qi = i + 16 s2 R0 k& C6 u m5 L

* ?$ S$ {* P1 U( u8 E- H8 |0 M, RRange("N" & i) = FileName
& j- j# Q$ ~% w F+ K! C. g; W
/ \9 ?$ [/ D- e7 d2 AFileName = Dir0 j1 X: J" g% V

- L% t/ F* W A4 x& ~! y5 F' KLoop
* q, L' k( n f5 p. \; i2 R% X+ [# `
End Sub

自动获取文件夹内全部文件的文件名.rar

17.06 KB, 下载次数: 4, 下载积分: 威望 -3 点

评分

参与人数2 威望+2 收起理由
闲人南居 + 1 热心助人,专业精湛!
大白小白 + 1 热心助人,专业精湛!

查看全部评分

3#
发表于 2020-5-5 18:20:06 | 只看该作者
收藏了,感谢分享。
4#
发表于 2020-5-5 23:04:26 | 只看该作者
“/B”代表的含义是什么?
5#
发表于 2020-5-6 14:13:20 | 只看该作者
这是个好主意!
6#
楼主 | 发表于 2020-5-6 15:09:26 | 只看该作者
晓昀 发表于 2020-5-5 23:04 6 E, m4 V) p+ `* U
“/B”代表的含义是什么?

' T- ~- i& r7 H; A
5 u6 q* M4 S0 q- O7 {* g2 y上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)
% ?, C4 Z, d/ B5 |% W% Q; H7 l/ P% e1 n( M8 Z3 i3 I" E* ?

) u$ Y8 {$ m5 y; n9 t+ f上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。( D R h, d4 _) s
7#
发表于 2020-5-7 08:59:27 | 只看该作者
收藏了,谢谢!
8#
发表于 2020-6-11 13:07:55 | 只看该作者
分享
9#
发表于 2021-8-15 10:01:45 | 只看该作者
怎么批量在文件名中汉字前后加上括号?
10#
楼主 | 发表于 2021-8-15 10:17:12 | 只看该作者
妖洞两拐 发表于 2021-8-15 10:01 ) K8 c! j: y" a8 F! V/ l& F+ W
怎么批量在文件名中汉字前后加上括号?
7 v4 E7 q1 P7 M1 r
这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。1 D2 y. W" v) M8 @/ Y5 A, w
您需要登录后才可以回帖 登录| 注册会员

本版积分规则

小黑屋|手机版|Archiver|机械必威体育网址(京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号)

GMT+8, 2024-8-8 23:44, Processed in 0.057254 second(s), 20 queries , Gzip On.

Powered byDiscuz!X3.4Licensed

? 2001-2017Comsenz Inc.

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