
批處理文件中的變量延遲與全局變量怎樣避免超出限制以下有For 循環嵌套.. 內層循環目的獲取指定路徑下指定格式文件大小. , 外層循環遍歷各個用戶文件夾,代碼最后一句 需要統計出 所有用戶目錄下, 該格式文件的總的大小.. 這里需要使用變量延遲才能是的內部循環的文件大小能進行計算. 當外層循環很多次以后, 會超出變量延遲的限制.. 所以不得不加 endlocal請問, 在這樣矛盾的情況下, 如何得出所有用戶下指定格式文件的總的大小?
當前運行結果:C:UsersadminAppDataLocalMicrosoftOutlookasdfa.ost 0Missing operand.Find 1 Files,Total 0 MBC:UsersAdministratorAppDataLocalMicrosoftOutlookDefault Outlook Profile.ost 251175936C:UsersAdministratorAppDataLocalMicrosoftOutlooksadf.ost 808Find 2 Files,Total 245 MBSummary: Total Find !n! Files,Total !ds! MBnclick="copycode($('code0'));">復制代碼
- @echo off
- set RootFolder=C:Users
- set SubFolder=AppDataLocalMicrosoftOutlook
- for /f delims= %%i in ('dir /ad /b C:users') do (
- setlocal enabledelayedexpansion
- set n=&set ds=0
- if exist %RootFolder%%%i%SubFolder%*.ost (
- for /f delims= %%j in ('dir /b/s %RootFolder%%%i%SubFolder%*.ost') do (set /a n=!n!+1
- echo %%j %%~zj
- set /a ds=!ds!+%%~zj
- )
- echo.
- SET /a ds=!ds:~0,-3!/1024
- echo Find !n! Files,Total !ds! MB
- echo.
- )
- endlocal
- )
- echo Summary: Total Find !n! Files,Total !ds! MB

