正好有个需求,导出服务器上某些文件目录的情况,研究了下Batch。

一共分为2个脚本, dirpath.bat->foldersize.bat

dirpath.bat用来找出指定的包含特定字符的文件目录所在路径。

代码如下:

dir /ad /b /s %1|findstr "C-">> y.txt
for /f "tokens=*" %%i in (y.txt) do foldersize %%i

foldersize.bat用来统计由dirpath.bat中获得到的目录情况。 代码如下:

@echo off 
IF [%1]==[] GOTO USAGE 
if NOT exist "%1" (ECHO "%1" path not exist & GOTO END) 

: DIR_PATH 
dir /ad /b %1 > 1.txt 
setlocal enabledelayedexpansion 
dir /s "%1" |findstr 个文件 > 2.txt || echo. > 2.txt 
for /f "eol=0 tokens=1,3 " %%j in (2.txt) do set ll=%%k & set ll=!ll:~0,-9! M %1 %%j 个文件 
echo !ll! >> result.txt 

set total= 
Endlocal 
del 1.txt 2.txt y.txt
GOTO END 

:USAGE 
echo Usage: %0 dir_path 
GOTO END 

:END 
rem pause