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

时间:2014-08-12 12:34:39

标签: batch-file reverse dir inverse

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

for / f"令牌= *" %% f in(' dir / s / b / o-n')do(echo %% f)

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

我希望在文件夹和文件中获得相反的顺序,而不仅仅是文件夹文件。像这样的东西 folder3 \ file2,folder3 \ file1,folder2 \ file2,folder2 \ file1 \,folder1 \ file2,folder1 \ file1

我该怎么做?

3 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:0)

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

@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***"
 )

很难处理多级子目标

答案 2 :(得分:0)

@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

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