這次改用要寫檔案的方式,檢查某個目錄裡面有幾個檔案具有特定附檔名的檔
這個真槍實彈實例演練,跟上次講過的:真槍實彈實例演練(2) - 檢查某個目錄裡面有幾個檔案很類似,只是改成要找到特定附檔名的檔案個數,而且故意要寫檔案,當然寫了檔案之後,記得要毀屍滅跡啊!
一樣自己看code,因為說明都在code裡面了:
@echo off
REM 檢查某個目錄裡,有幾個具有特定附檔名的檔案
REM 先清空螢幕
cls
REM 設定區域變數
setlocal
REM 檢查是否有傳入要檢查的目錄
if %1a==a goto Syntax
if %2.==. goto Syntax
REM 檢查目錄是否存在
if not exist %1 echo 目錄 %1 不存在,請確認目錄名稱沒打錯 && goto EOF
REM 顯示該目錄中的所有檔案,要排除目錄,然後導向計算個數
dir /a-d/b %1 | find /c ".%2" > alexcfiles.###
set /p files = <alexcfiles.###
del /q alexcfiles.###
echo 目錄 %1 裡,有 %filess% 個 %2 的檔案
goto EOF
REM 顯示使用方式
:Syntax
echo 使用方式:
echo %0 "C:\要被檢查的目錄" 附檔名
echo.
echo 例如要檢查 d:\alexc 目錄中有幾個 .xls 的 Excel 檔案,可以用
echo %0 d:\alexc xls
:EOF
REM 結束設定區域變數
endlocal
把上面的程式碼存成countfilesbyext.cmd。例如要檢查%tmp%目錄有幾個.xls檔案,就用:
countfilesbyext %tmp% xls