【发布时间】:2016-12-30 09:26:30
【问题描述】:
我正在尝试创建一个文件夹列表及其大小,主要是因为我的驱动器空间不足。我无法弄清楚我在哪里以及为什么空间不足,因此我想创建所有文件夹的列表,包括它们的大小和修改日期(或创建日期也有效)。 列出文件夹及其大小是我管理的事情,但是我也不确定如何编写修改日期。我尝试了 set "mtime=%%~tf" 的一些变体,但没有成功。我对每个文件夹的内容不感兴趣,只对我在脚本中定义的所有子文件夹的相关信息感兴趣。 低于我到目前为止所做的(也经过测试)。 提前致谢!
稍后编辑:不是重复的,那篇文章解释了如何写大小,我已经想通了,它是写在代码中的。我也不知道如何写修改/创建日期..
@echo off
pushd "D:\test"
for /f "delims=" %%a in (' dir /ad /b ') do call :size "%%~fa"
popd
pause
goto :eof
:size
for /f "tokens=3" %%b in ('dir /s "%~1" 2^>nul ^|find " File(s)"') do set "n=%%b"
set dirsize=%n%
REM set dirsize=%dirsize:,=%
set dirsize=%dirsize%
set dirsize=%dirsize:~-18%
>>"D:\test\dirsize.tmp" echo %dirsize% "%~1"
输出:
7,557 "D:\test\e" 2,519 "D:\test\t" 2,519 "D:\test\ta"
【问题讨论】:
-
不,不是重复的,已经查看了该帖子。答案只是大小。我已经在临时文件中知道了文件夹的大小和它们的名称,我只是不知道如何写创建日期(或修改日期)。
-
@OanaScheianu,请不要更改问题的主题,尤其是在已经发布答案的情况下,因为这些可能会失效!而是问一个新问题!有
~tmodifier返回最后修改日期/时间... -
@aschipfl 我希望你在开玩笑。我没有更改我的问题的主题/我现在只是将标题更改为更具体,因为我看到人们不会费心从头到尾阅读它。我专门写了我设法列出文件夹的名称和大小。日期是我无法成功写入的日期。已经尝试使用 ~t 修饰符,但没有成功。因此,如果有人可以专门帮助我完成这部分,我会在这里发布。
-
for /f "delims=" %%a in (' dir /ad /b ') do call :size "%%~fa" "%%~ta"将提供上次写入的日期时间作为第二个参数。
标签: windows batch-file