使用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
到你要追加echo的文件
输出。
- 为了 命令行复制示例 ,你会想做一个
CD /D C:\Path
到父目录所在的子文件夹所在的位置 .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
设置变量命令行复制示例
(使用以下设置文件夹名称和文件扩展名 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%"
设置变量的批处理脚本示例
@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
进一步阅读和资源