开发者社区> 落雨_> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【转】目录和文件名遍历输出 批处理 batch

简介: TREE 只能输出目录结构,楼主想要的是 文件也一起输出有现成的命令啊 TREE [drive:][path] [/F] [/A]   /F   显示每个文件夹中文件的名称。  /A   使用 ASCII 字符,而不使用扩展字符。
+关注继续查看

TREE 只能输出目录结构,楼主想要的是 文件也一起输出
有现成的命令啊

TREE [drive:][path] [/F] [/A]
   /F   显示每个文件夹中文件的名称。
  /A   使用 ASCII 字符,而不使用扩展字符。
--------------

加上参数 /F 就可以连文件一起输出了,忘记了

C:\>TREE D:\DEC_KITCHEN\SYS /F>LIST.TXT

LIST.TXT 生成在C:\LIST.TXT

 

 

很多时候想要把一个文件夹下面的所有目录和文件名遍历一遍输出来。这样可以很直接明白的展示一下文件夹的结构。
就比如如何去除老三样,如何精简核心文件,按之前的教程:要么都是直接给出一个精简BAT处理。此法只是授人与鱼而已。解出BAT也不一定完全理解原作者意图。
要么有些人就这么写教程:
删除某某目录下某某名字文件。此法累死人啊。写的人累。而且有时候还会漏掉某些东西。

如果有了这样一个批处理,上面的问题就简单了。直接拖动某个文件夹就能遍历所有文件夹下的所有文件,并按照文件夹结构输出到一个TXT中。再用beyondcompare比较一下,就可以很简单的显示整个文件下所有文件的名称了。而且有助于大家交流自己的成果。


我现在找到的这个BAT。拖动桌面的某个文件夹。结果却把整个桌面的所有文件夹的文件名遍历出来了。不知道能不能改成我上面说的那样。拖动哪个文件夹就遍历哪个文件夹啊?高人出来指点啊。

:: VisitI.bat - 对指定路径指定DIR信息的文件进行遍历操作的的程序
:: 第一参数为指定的DIR信息项,第二参数为要遍历的路径(缺省为当前路径)
:: 注意:DIR信息项可以是文件名,扩展名,日期,时间等DIR命令提供的目录信息项
:: 可以同时使用多项,但必须加一对引号,参数格式也须严格符合DIR的信息格式
@echo off

:main
if [%1]==[] goto end

:init
if exist filelist.txt if exist xset.asd goto loop
set info=%1
set base=%2
if [%2]==[] set base=.
dir %base%\. /s /a /b > filelist.txt
echo e 100 ''''set file='''' > xset.asd
echo w >> xset.asd
echo q >> xset.asd

:loop
fc filelist.txt nul /n | find " 1:" > setfile.bat
if errorlevel 1 goto restore
debug setfile.bat nul
call setfile.bat
dir "%file%" | find %info% > nul
if not errorlevel 1 echo Visit file: "%file%"
:: if not errorlevel 1
find "%file%" /v filelist.tx2
:: "%file%" 参数决定了所匹配的子目录下的所有文件和目录均不会再次匹配
copy filelist.tx2 filelist.txt > nul
goto loop

:restore
if exist filelist.txt del filelist.txt
if exist xset.asd del xset.asd
if exist filelist.tx2 del filelist.tx2
if exist setfile.bat del setfile.bat
set info=
set file=
set base=

:end
pause复制代码


这是这个BAT的处理结果。
这是bat


不用BAT了,谢谢下面那楼的朋友。不过不能显示无后缀名的文件。很遗憾。同学帮我编了一个程序可以实现我说的功能。识货的可以拿去用。
自己写个批处理不就好了?好人做到底,帮你写了

 



支持拖放与鼠标右键“发送到”(自己创建快捷方式到sendto)

list.txt文本生成在 脚本所在的目录

@ECHO OFF
TITLE 创建文本目录树_By_炮炮@ppps.cn
COLOR 1F
MODE CON: COLS=80 LINES=20
CLS
IF "%~1"=="" GOTO _Usage
set path_arg=%~d1%~p1
CLS
ECHO.
ECHO.     =================  创建文本目录树_By_炮炮@ppps.cn  ===================
ECHO.     =                                                                    =
ECHO.     =   正在生成"%~1"的文本目录树...         =
ECHO.     =                                                                    =
ECHO.     ======================================================================
ECHO.
DEL /F/Q "%path_arg%LIST.TXT"
TREE "%~1" /F > "%path_arg%LIST.TXT"
CLS
ECHO.
ECHO.     =================  创建文本目录树_By_炮炮@ppps.cn  ===================
ECHO.     =                                                                    =
ECHO.     =   已经生成"%~1"的文本目录树...
ECHO.     =                                                                    =
ECHO.     =   目录树列表文本:%path_arg%LIST.TXT
ECHO.     =                                                                    =
ECHO.     ======================================================================
ECHO.
GOTO _Exit

:_Usage
CLS
ECHO.
ECHO.     ==================  创建文本目录树_By_炮炮@ppps.cn  ==================
ECHO.     =                                                                    =
ECHO.     =   抱歉!你的用法不对!                                             =
ECHO.     =                                                                    =
ECHO.     =   用法: 请使用拖放或“发送到”本批处理!                           =
ECHO.     =                                                                    =
ECHO.     ======================================================================
ECHO.

:_Exit
ECHO.
PAUSE复制代码

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
0 0
MapReduce将小文件合并成大文件,并设置每个切片的大小的案例
测试代码: package cn.toto.bigdata.combinefile; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.LongWritable; imp
2723 0
批处理:遍历输出指定后缀格式的文件名.bat
批处理:遍历输出指定后缀格式的文件名.bat 1 @echo off 2 type nul >C:\result.txt 3 for /r "d:\我的文档\桌面\交接\webservice\Webservice项目" %%a in (*.pdf) do ( 4 >>C:\result.txt echo %%~dpa%%~nxa 5 ) 自己新建一个文本文档,然后将上面的代码贴进去,之后将txt重命名为.bat后缀,双击bat脚本,即可在C盘的result.txt里面,看到你想要的结果。
939 0
+关注
落雨_
http://js-dev.cn
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载