bat脚本递归地列出当前文件夹中所有扩展名为.txt的文件,打印文件名和仅相对文件夹路径



递归列出当前文件夹中所有扩展名为.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!
)
)

最新更新