标题: 这个for语句错在哪里
[打印本页]
作者: iaide
时间: 2007-1-31 17:03
标题: 这个for语句错在哪里
echo off
setlocal EnableDelayedExpansion
for /f %%i in ('dir /b e:') do (
for /R "e:\%%i" %%j in (*) do set /a n+=%%~zi
set /a k=%n%/1024/1024
echo %%i 大约 %k% M )
pause
请问上面的代码,出错在哪里,是不是FOR不可以重复使用,谢谢
──────────────── 版务记录 ────────────────
执行:namejm
原标题:请教FOR问题~!
修改后标题:这个for语句错在哪里
说明:因标题表述过于模糊,不便于论坛的搜索和管理,在本提示发表三日后,楼主
仍未修改标题。现由本人强制修改标题,并扣除楼主2点积分。
──────────────── 版务记录 ────────────────
[
Last edited by namejm on 2007-2-6 at 09:16 AM ]
作者: PPdos
时间: 2007-1-31 20:13
几个括号?
作者: NaturalJ0
时间: 2007-1-31 21:17
1、没有完整的路径时,取不到大小
2、如果套着用有问题,可以试下用 CALL 调用
作者: NaturalJ0
时间: 2007-1-31 21:28
@echo off
setlocal EnableDelayedExpansion
for /f %%i in ('dir /b e:') do (
call :a "e:\%%i"
)
pause
:a
set /a k=%~z1/1024/1024
echo %~1 大约 %k% M
你好像是要这种?你看看对不对。
作者: iaide
时间: 2007-2-1 07:43
Quote: |
Originally posted by NaturalJ0 at 2007-1-31 21:28:
@echo off
setlocal EnableDelayedExpansion
for /f %%i in ('dir /b e:') do (
call :a "e:\%%i"
)
pause
:a
set /a k=%~z1/1024/1024
echo %~1 大约 %k% M 你好像 ... |
|
谢谢你的回复,
还达不到我要的结果,
我的目标是,算出E盘下的每个目录的大小,。
作者: SpikeKnox
时间: 2007-2-1 15:09
标题: %~z1是取不到目录大小的
你要的是这样的功能吗?
@Echo OFF
SetLocal ENABLEDELAYEDEXPANSION
For /f %%i IN ('dir /s /b /ad e:') DO (
Call :GetSize "%%i"
)
Pause
Goto :EOF
:GetSize
rem %1 目录路径
For /f "tokens=3" %%i IN ('dir %1 ^| find "文件"') DO (
Set size=%%i
Set size=!size:,=!
Set /a size=!size!/1024/1024
Echo %~1 大约 !size!M
)