列出子目录中的文件并仅使用 Windows 命令行获取相对路径

eri*_*mon 9 windows command-line directory-listing

我想使用 Windows 命令行列出带有路径的文件。

例如:

~\folder1
  \1.jpg
  \2.jpg
~\folder2
  \01.jpg
  \02.jpg
Run Code Online (Sandbox Code Playgroud)

我希望输出类似于相对路径而不是完整路径:

.\folder1\1.jpg
.\foler1\2.jpg
Run Code Online (Sandbox Code Playgroud)

当我使用DIR /S /B *.jpg > list.txt它列出完整路径时C:\download\folder\folder1\1.jpg,我只需要它列出相对路径,例如.\folder1\1.jpg......

使用 的 Linux 命令行find ./ -iname *.jpg > list.txt,给了我预期的结果,但我需要一个可以在 Windows 上工作的解决方案。

Vom*_*yle 2

使用 Windows 命令行列出带有子目录的文件

我想输出:.\folder1\1.jpg,.\foler1\2.jpg....

我知道如果我们使用 dir /s/b *.jpg > list.txt 会得到类似 C:\download\folder\folder1\1.jpg 的东西,我不想那样,我只需要 .\folder1\ 1.jpg

变量澄清(下)

  • 下面的逻辑是,FOR %X IN ("folder1","Folder2")或者SET Folders=("Folder1","Folder2","Folder3","Folder4")您将把 、 等放在您要查找的每个文件夹名称的双引号和逗号中,并将其列出到您要附加回显输出的文件中。"Folder1""Folder2"./Foldername/file.jpg
  • 对于命令行复制示例,您将需要CD /D C:\Path对文件所在的子文件夹所在的父目录执行 a 操作.JPG,因为假设您在父目录中查找这些子子文件夹及其包含的文件类型/扩展名,则该逻辑是隐式的。
  • 对于其他示例,您只需插入包含所有子文件夹的父目录,其中文件.JPG存在于SET ParentDir=值中,并且一切都应该按预期工作。
  • 我认为其他变量应该SET是不言自明的,因为它们的命名非常接近它们的含义,但如果您需要进一步说明,请告诉我。

命令行复制示例

FOR %X IN ("folder1","Folder2") DO FOR /F "TOKENS=*" %F IN ('DIR /B /A-D ".\%~X\*.jpg"') DO ECHO .\%~X\%~F>>C:\Path\Log.txt
Run Code Online (Sandbox Code Playgroud)

设置变量命令行复制示例

(使用下面的内容设置命令的文件夹名称和文件扩展名DIR。还要插入要以该格式附加到文本文件的子文件夹所在的父目录完整路径。)

SET FileType=*.jpg
SET ParentDir=C:\Users\Name\Desktop
SET Folders=("Folder1","Folder2","Folder3","Folder4")
SET LogFile=C:\Path\LogFile.txt

CD /D "%ParentDir%"
FOR %X IN %Folders% DO FOR /F "TOKENS=*" %F IN ('DIR /B /A-D ".\%~X\%FileType%"') DO ECHO .\%~X\%~F>>"%LogFile%"
Run Code Online (Sandbox Code Playgroud)

设置变量的批处理脚本示例

@ECHO ON
SET FileType=*.jpg
SET ParentDir=C:\Users\Name\Desktop
SET Folders=("Folder1","Folder2","Folder3","Folder4")
SET LogFile=C:\Path\LogFile.txt

CD /D "%ParentDir%"
FOR %%X IN %Folders% DO FOR /F "TOKENS=*" %%F IN (

    'DIR /B /A-D ".\%%~X\%FileType%"'

) DO ECHO .\%%~X\%%~F>>"%LogFile%"
GOTO EOF
Run Code Online (Sandbox Code Playgroud)

进一步阅读和资源