递归列出当前文件夹中所有扩展名为.txt的文件,打印文件名,仅打印相对文件夹路径
在bat文件中,我试图递归地列出当前文件夹中所有扩展名为.txt的文件,只打印文件名和相对文件夹路径。
我尝试了很多解决方案,最接近我想要的是:
@REM :treeProcess
@REM FOR %%f in (*.jmx) do echo %%f
@REM FOR /D %%d in (*) do (
@REM cd %%d
@REM call :treeProcess
@REM cd ..
@REM )
但是这打印出上面的路径,我需要相对路径。
我需要的示例结构:
当前目录是C:\test
File a.txt
Folder 1
File a1.txt
Folder 1.1
File a2.txt
Folder 1.2
预期结果:
a.txt
Folder 1a1.txt
Folder 1Folder 1.1File a2.txt
在您将从C:\test\文件夹执行的bat文件中尝试此操作。
SET "StartPath=%cd%"
setlocal enableDelayedExpansion
FOR /f "tokens=*" %%f in ('dir /B /ON /S "!StartPath!*.txt"') DO (
set "SubDirsAndFiles=%%f"
set "SubDirsAndFiles=!SubDirsAndFiles:%StartPath%=!"
IF EXIST "!StartPath!!SubDirsAndFiles!" (
REM Echo This is a folder...
ECHO !SubDirsAndFiles!
) ELSE (
REM Echo This is a file...
ECHO !SubDirsAndFiles!
)
)