2017-02-09 51 views
0

我需要瀏覽除了一個(名爲「FORBIDDEN」)以外的所有目錄,併爲每個目錄打印它們包含的所有文件。批量處理,如何列出特定目錄的文件?

所以我寫一個批處理腳本是這樣的:

@echo off 
for /f "tokens=*" %%G in ('dir /b /s /a:d %cd%') do^
if %%G NEQ C:\Users\ME\FORBIDDEN (dir /a-d %%G) 

但部分(dir /a-d %%G)並不好,因爲我得到了一些錯誤,說文件沒有找到。

因此,對於循環的每一輪,如何列出目錄中的所有文件(其路徑在%%G)?

乾杯

回答

1
for /d /r %%d in (*) do if not "%%~nxd"=="FORBIDDEN" 2>nul dir /a-d "%%d" 

對於每個文件夾,如果它不排除一個,顯示其內容

編輯適應評論

爲僅包括具有完整路徑

文件
for /d /r %%d in (*) do if not "%%~nxd"=="FORBIDDEN" (
    for %%f in ("%%~fd") do echo "%%~ff" 
) 

另一個選項(也包括在當前文件夾中的文件)可能是

dir /a-d /s /b | find /v "\FORBIDDEN\" 

獲取完整列表和過濾它,只檢索沒有提及到要排除的文件夾中的線

+0

它看起來不錯,但如何你會只顯示文件(及其路徑)? (而不是其他迪爾評論),對不起,我沒有問 – juRioqs75

+0

@ juRioqs75,答案更新。 –

相關問題