【发布时间】:2021-10-23 16:23:09
【问题描述】:
我在一个特定文件夹中有 900k 个文件,我需要根据 100 mbs 的总大小每天将它们移动到另一个文件夹。我试过下面的代码,但它移动了 100 个文件,而不是 100 mbs 的总量
@echo on
set Source=C:\Users\%Username%\Desktop\Dropbox\Pre
set Target=C:\Users\%Username%\Desktop\Dropbox\Pos
set MaxLimit=10
for /f "tokens=1* delims=[]" %%G in ('dir /A-D /B "%Source%\*.*" ^| find /v /n ""') do (
move /y "%Source%\%%~nxH" "%Target%"
if %%G==%MaxLimit% exit /b 0
)
pause
我需要批处理来移动它们大小总和小于或等于 10 kbs 的文件上的选择。如果我手动选择组成 100 mbs 的 N 个文件,基本上也是这样做的。 我相信它不起作用,因为它只检查单个文件的大小。
【问题讨论】:
-
您为执行您在问题中提出的任务而编写的代码在哪里?我们不是来为你写的!我们的目的是帮助您解决您提交的代码的特定且可重现的问题,正如您告诉我们您的代码有效,我们没有什么需要解决的。因此,您的问题是期望有人为您编写代码,或执行搜索,并为您找到类似的答案。不幸的是,这不是本网站的目的,并且由于您不是全新的帐户持有人,因此您应该了解更多。请阅读How to Ask 更新您的知识。
-
谢谢,我已经用我尝试过的代码和结果编辑了帖子
-
这真的不够好!我看不到你有一个没有扩展名的文件,在
C:\Users\%Username%\Desktop\Dropbox\Pre中命名为10。您绝对没有尝试确定任何单个文件的大小,也没有执行任何运行总计算或任何接近您要求的操作。我们希望您在任务中做出合理的尝试,并且由于使用 [batch-file] 标签在本网站上肯定有类似的问题和答案,您当然需要使用页面顶部的搜索引擎,以协助您进行该尝试。
标签: windows batch-file cmd move