一个批处理问题

代码如下:
@echo off
for /f %%a in ('dir c:\ /b ') do (

echo %%~za:保留文件大小信息
)

pause>nul

想获得c:\下文件夹及文件的大小,但是显示是:
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息
:保留文件大小信息

为什么,应该怎么搞

LS所说的不完全对
看看下面的代码1就知道
代码1
@echo off
cd /d c:
for /f "delims=" %%a in ('dir /a-d/b') do for %%b in ("%%~dpnxa") do echo %%~dpnxa 文件大小信息:%%~zb
pause>nul

因为dir /a-d/b生成的都是短名,不包含盘符与路径,%%~za是识别不了的,在用FOR识别一下%%~dpnxa就可以了

代码2
@echo off
cd /d c:
for /f "delims=" %%a in ('dir /a-d/b') do echo %%~dpnxa文件大小信息:%%~za
pause>nul
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-05
要显示大小,须首先切换到文件所在目录。
@echo off
cd /d c:\ &rem 切换到c盘

for /f "tokens=*" %%a in ('dir c:\ /b ') do echo %%~za:保留文件大小信息

pause>nul