簡體   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