繁体   English   中英

通过dir命令批量获取文件的反列表

[英]Get inverse list of files through dir command in batch

我正在尝试以相反的顺序获取子文件夹的文件列表:

为/ f“ tokens = *” %% f in('dir / s / b / o-n')执行(回显%% f)

我得到这个结果folder1 \\ file2,folder1 \\ file,folder2 \\ file2,folder2 \\ file1,folder3 \\ file2,folder3 \\ file1

我想获得文件夹和文件中的倒序,而不仅仅是文件夹中的文件。 像这样的文件夹3 \\文件2,文件夹3 \\文件1,文件夹2 \\文件2,文件夹2 \\文件1 \\,文件夹1 \\文件2,文件夹1 \\文件1

我怎样才能做到这一点?

尝试这个

for /f "tokens=*" %%f in ('dir /s /b /o-n') 
    do (
        SET OUTPUT=%OUTPUT%, %%f
    )
echo %OUTPUT%

运行第一个循环以获取第一级子目录,然后在每个目录上运行you命令

@echo off
for /f "tokens=*" %%f in ('dir c:\temp\so\ /b /o-n /AD') do (call :filesOf %%f)

:next
echo next
pause

:filesOf 
echo "files for  ******** %1 *********"
if ("%1"=="") goto next else(
 for /f "tokens=*" %%i in ('dir c:\temp\so\%1 /s /b /o-n ') do echo "***%%i***"
 )

很难处理多级子目录

@echo off
for /f "tokens=*" %%f in ('dir /s /b /o-n') do (echo %%f >> tempfile.123)
C:\Windows\System32\sort.exe /R tempfile.123
del tempfile.123

这只是将您的文件回显到临时文件,然后重新显示它。 抱歉,无法找到sort.exe的完整路径,但我安装了cygwin。 如果您想要适当的临时文件名,我建议您使用此http://unserializableone.blogspot.com/2009/04/create-unique-temp-filename-with-batch.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM