机械社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
楼主: 魍者归来

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

[复制链接]
发表于 2020-5-5 15:03:33 | 显示全部楼层 |阅读模式
有时候我们统计当前文件夹内某种文件的文件名,少的时候当然手打就ok,面对几百张图纸的时候这并不是个理智的方法。8 Z! p* o; |4 P  Y: k# W4 b& W
+ \9 m! N& r+ Y& C
所以这个时候就可以祭出【批处理】了:
6 [4 M6 E4 E8 V. N. {( W" P9 ^8 {4 M2 X
1、新建一个.txt文件。
) N) {# g; b- ^8 b. X6 ^6 _$ I" _2、打开,输入以下红字内容(这里以统计.PDF文件为例):0 P  e- q$ D& h) P" ?
DIR  *.pdf /B  >LIST.TXT
8 t& N5 a% b- l) |2 |* a) Q& b/ \& V; M, _
3、保存文件,将.txt后缀改为.bat。
; x5 N0 N7 z+ Q6 I: e4、双击运行,会在当前文件夹生成一个LIST.TXT文件,打开可以看到里面的内容就是当前文件夹下全部PDF文件清单。1 S* K* U/ `" e  p6 G. N, _

- P% m- v, E) U4 e% C' |特别的说明:
% D: a  {  \0 @5 P4 h
  • 上述红色字体的部分可以直接复制黏贴,所有字符(包括空格)均为英文半角
  • .pdf可以替换成自己需要的后缀名,比如统计图纸的时候可以改成.dwg等。
  • LIST.TXT是用来存储清单的文本文档,其中LIST可以替换成自己习惯的名字,但不要用中文,会出现乱码。
  • 保存好的.bat文件复制到任何有权限的文件夹都可以使用。(注意:不会统计子文件夹中的文件)4 g' h  @% a& p3 u1 P9 ]' g

! a# P. v. @# Y% o* h
8 m0 n( S* t& p2 j
回复

使用道具 举报

发表于 2020-5-5 16:10:43 | 显示全部楼层
转帖
# e0 m, `& @0 c8 W$ `7 K批量获取文件名
" w5 o2 x; L- q( r6 G这里分享工具下载链接:
/ G, j# e3 d8 H. f' r% u/ A6 V
7 Y& T8 q9 K% p  e5 y8 Ihttp://pan.baidu.com/s/1o8u6aiY
0 @' |3 k# v0 O4 l& [5 F  Q# z: _5 n
功能:批量获取同一个文件夹内的文件名,并根据文件名统计分支机构的文档报送情况。
, n( B  z3 B: N- `; F% G" Y3 W+ S" \; O$ a; O: [5 s5 \8 X
使用方式:将表格文件放入存放需要统计各种文件的文件夹内,打开EXCEL表格,选择需要统计的文件类型,点击按钮运行宏即可。
1 s+ o+ Y1 y! r9 p" U) r$ b6 }( ?1 B) r
注意事项:最好在收集保存文件时,按照报送机构关键字重命名文件(可以通过VBA代码在OUTLOOK中自动存储邮件的附件并重命名,这个以后再和大家分享)。
6 o4 |9 [; F/ O) m6 t0 T; S, L1 y# h4 c# D. ~% {! }
授人以鱼不如授人以渔,这里直接上代码:1 Y3 }2 |! F& C1 k
2 k! e* |: V7 A2 N
Private Sub 提取文件名()
0 @: ~1 I7 s( I+ ]& [7 x, b# O: b( G' `5 R6 U; r: z) t
Dim FileName As String
+ e, x/ S) S* |6 {. }$ S/ C1 _7 R8 O# V: d
Dim i As Long$ j% d  I  F1 X1 \% V& @2 s
7 x8 }7 Q1 ^3 j- v
Dim tmp As String+ _; p# v8 L7 c3 ^+ e6 I

& w0 {$ o: c/ nmypath = ActiveWorkbook.Path
2 W; t+ Q/ z# D+ p& V: W
5 [' t" J+ X3 Q( I# a  lFileName = Dir(mypath & "\*.*")'如果是仅需要统计特定类型的文件如EXCEL,将*.*改为*.xlsx即可,以此类推
% P3 U2 @: [3 A0 @# ~, B* p0 s/ A3 I/ ]
i = 0
. m  N% K1 `+ o3 {8 F' p0 D( O
; N4 L( `" y* P4 j4 `' U, [- r; aRange("N:N").ClearContents
5 B& z4 w1 a& f. P; g! O% C
( O% g! L8 J+ @Do While FileName > ""
7 a7 @( v# W  \0 w+ d  }1 U, Y9 ~( u7 S$ F) |1 o
i = i + 1" d/ r' j1 Y, s

6 x0 w; ?) E/ ?6 l, iRange("N" & i) = FileName7 I) p# V9 J  L5 \% T

8 z7 Z( n  {3 qFileName = Dir( R" z! l# n# Y7 e2 j$ {- J

. y1 n  L8 x6 A. E4 uLoop" H9 A! Z* [1 Y, `6 J

8 n+ \4 H5 _  j# [; P/ D) }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
3 q' Y/ R/ P9 @“/B”代表的含义是什么?
! G1 A2 i- T$ ^0 D3 a% q7 Q* }
捕获.JPG
$ i) l8 e' p) v5 X: J! C" t6 F上图是命令行中的提示信息,/B相当于输出简化的格式(也就是文件名或文件夹名)' o$ w/ j5 x1 S) g8 V

0 K- o% i/ m) e2 ]( A 捕获2.JPG * ?, ^: c, c# S2 H, w" X
上图是两个命令的对比:①用了dir /b,输出的是所在文件夹包含的子文件夹名和文件名;②用了dir,输出的是驱动器和文件(夹)的信息。: O0 f, W! O0 ?# f; _$ `
回复 支持 反对

使用道具 举报

发表于 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
) K  `5 |. a  L怎么批量在文件名中汉字前后加上括号?
& D7 [. [" P! j: h
这个需求很古怪,一般都是要去括号的。可以拿excel中的替换功能当桥梁,批量修改文件名。或者有闲暇时间的,可以直接摞代码搞定。! Y6 `% h$ f# n" w) A6 Q) L- M0 _
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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