【轉】目錄和文件名遍歷輸出 批處理 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復制代碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM