2013-04-16 74 views
0

我是一個批處理腳本,它讓我只計算某個子目錄中的文件數量。腳本根據重複次目錄計算子目錄中的文件

我有一個目錄樹與各種項目(300 +),我只在尋找reocurring子目錄中的文件的數量。

目前我正在使用mtee(小程序將cmd輸出恢復爲txt文件)和dir來計算子目錄並在excel中執行手動搜索。

我想知道是否有一種方法可以在批處理腳本中執行此操作。

例如:每個項目都有目錄提議和子目錄禁止提議。我想從directorytree的基礎上計算在不走的提案文件量

回答

0

閱讀HELP FORHELP SET和嘗試下面的代碼

@echo off 
setlocal enabledelayedexpansion 
for /r /d %%d in (*) do (
    call :countf "%%d\nogo" 
) 
goto :eof 

:countf 
set count=0 
for %%f in ("%~1\*") do (
    set /a count+=1 
) 
echo %~1 has !count! files 
goto :eof 
+0

謝謝,但這是深深的1迪爾。多大的程度去決定多大的程度。有些有1個subdir可以通過,而其他可能有3個或4個 – user2285461

+0

哦,我明白了。編輯爲'FOR'命令添加'/ R' –

0

試試這個:

@echo off &setlocal 
set "startfolder=x:\proposals\no-go proposals" 

set /a counter=0 
for /r "%startfolder%" %%i in (*) do set /a counter+=1 
echo %counter% files found in "no-go proposals" . 
0
for /f %%i in ('dir /s/b/a-d "c:\project"^|find /c "\no-go-dirname\"') do ECHO nogocount=%%i 

那麼,這是批處理文件中的行。如果你從提示符下運行它,每個%%變得%

做的所有的文件名的目錄列表,/a-d沒有數據夾,/s包括子目錄/b的基本形式,所以沒有標題或拖車。用find篩選器這一點,並/c計數包含字符串「\no-go-dirname\」的臺詞和分配計數%%i

+0

關閉,但是這也會計算存在於「no-go proposals」文件夾的子目錄中的文件。在管道到FIND/C之前,用一個構造良好的正則表達式向FINDSTR添加另一個管道可以正確地過濾結果。 – dbenham

+0

從OP的評論中,我認爲這是必需的。是否有需要排除的no-go子目錄的子目錄中的文件?需要更多信息。 – Magoo

+0

同意,需要更多信息。我解釋說有很多沒有去的文件夾,並且OP只想要在各個不去的文件夾中的文件夾。您可以包含禁止文件夾的子目錄。兩者都可能是有效的。 – dbenham

0

很高興看到這麼多的選擇,而所有這些工作無縫然而,這是我的版本。

dir /s/b /a-d | find /c /v "" 

在需要文件計數的目錄中運行此命令將只返回計數。

相關問題