2014-01-13 50 views
1

當我運行遞歸目錄搜索文件時,如果文件夾爲空但echo%count%輸出0就像它應該輸出「File Not Found」。批處理文件遞歸搜索空文件夾中的「文件未找到」錯誤

setlocal 
set /a count=0 
for /F %%N in ('dir/s/b/aa "folder\name\*.txt"^| find /c "::"') do set count=%%N 
echo %count% 

所有我想要的是一個批處理文件來計算的文本文件的數量遞歸目錄和輸出比如999的結果,顯示爲0,如果該文件夾爲空。我已經嘗試過> nul和大量的批量搜索腳本。我沒有未訪問過的Google鏈接來查看。

回答

2
for /F %%N in ('dir/s/b/a-d "folder\name\*.txt" 2^>nul ^| find /v /c ""') do set count=%%N 

應該有>之前插入符號(^)逃離重定向。

+0

完美的工作!萬分感謝! – SuperMar1o

1

File not found被髮送到標準錯誤流。你可以保持沉默,通過與2>nul重定向它:

for /F %%N in ('dir/s/b/aa "folder\name\*.txt" 2^>nul ^| find /v /c ""') do set count=%%N 
+0

這似乎是一個好主意,但是你給我的那個人犯了錯誤和崩潰。 「2>在這個時候意外」 – SuperMar1o

+1

呃,對不起。當然,我們也需要逃避''''。 – Joey

1

我知道這也許不是你正在看什麼,但你嘗試過:

dir/s/c folder\name\*.txt 

我認爲它你正在尋找幾乎什麼對於。

+0

這看起來幾乎正是我所希望的大聲笑。唯一的問題是它不輸出純數字。礦山輸出大量信息。任何想法如何使其更小?我添加了/ b,但輸出完整的文件名。 – SuperMar1o

+0

確切的OS?/c應該只輸出目錄名和計數 - 不能在windows/dos上自己嘗試,因爲我在Linux上。 –

+0

夠公平的,我在Win7 x64上。 http://imageshack.com/a/img163/5475/318c.png沒什麼大不了的,我打算再看看它,但是,沒有工作。 – SuperMar1o

相關問題