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

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
复制代码