【问题标题】:Find files larger than 100MB and move to a folder查找大于 100MB 的文件并移至文件夹
【发布时间】:2014-05-31 00:50:21
【问题描述】:

我是批处理文件的新手。我一直在四处寻找,并在Batch script to find files greater than 10MB in D drive in windows xp中找到了一个可靠的来源

我在当前目录中有多个文件夹。我的目标是递归查找所有 100MB 或以上的文件。找到结果后,我想将所有这些文件移动到一个新文件夹中。我所有的子文件夹都包含一个电影文件。在linux中,我制作了这样的脚本:

find /media/CDrive/tobecheck/ -name "*.wmv" -exec mv {} /media/CDrive/temp/ \;
find /media/CDrive/tobecheck/ -name "*.avi" -exec mv {} /media/CDrive/temp/ \;
find /media/CDrive/tobecheck/ -name "*.AVI" -exec mv {} /media/CDrive/temp/ \;
find /media/CDrive/tobecheck/ -name "*.WMV" -exec mv {} /media/CDrive/temp/ \;
find /media/CDrive/tobecheck/ -name "*.MKV" -exec mv {} /media/CDrive/temp/ \;
find /media/CDrive/tobecheck/ -name "*.mkv" -exec mv {} /media/CDrive/temp/ \;
find /media/CDrive/tobecheck/ -name "*.mp4" -exec mv {} /media/CDrive/temp/ \

所有这行将移动 tobecheck 文件夹中的任何内容,并递归查找电影文件并将其移动到临时文件夹。 我想归档这样的东西。据我所知,为了更容易,我所有的电影文件都高于 100MB。所以我试图找到这个解决方案。

如果有人知道如何在 Windows 命令行中使用管道,那真的会节省我很多时间:)

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    这应该将超过 100 MB 的文件移动到递归显示的文件夹中,但请对其进行测试以查看它如何处理超过 2 GB 的文件。
    您必须计算逆结果,因为批处理数学的上限为 2GB。

    @echo off
    for /r %%a in (*.wmv *.avi *.mkv *.mp4) do (
    if not %%~za LEQ 100000000 move "%%a" "media\CDrive\temp"
    )
    

    【讨论】:

      【解决方案2】:
      for %i in (*.*) do echo %i|findstr /i ".mov$ .wmv$ .avi$ .mkv$ .mp4$" && move "%i" "\media\CDrive\temp\%i"
      

      如果你在批处理文件中使用它,写%%i而不是%i

      伪代码:

      对于所有文件 (*.*) 执行:

      将文件名 (echo %i) 和管道 (|) 写入 findstr

      看看它是否以扩展名之一结束($),但不关心大小写(/i)

      如果是 (&&) 移动文件

      【讨论】:

      • 您介意详细说明它是如何工作的吗?我试过了,它不动。我将批处理文件放在当前工作目录中。我制作了两个文件夹,每个文件夹里面都有一个电影文件。我创建了第三个名为 temp 的目录。但它不会移动到临时文件夹。
      • 你写的是%%i而不是%i吗?
      • 是的,我做到了。 for %%i in (.) do echo %%i|findstr /i ".mov$ .wmv$ .avi$ .mkv$ mp4" && move "%%i" "temp\% %i"
      • Stephan,您的代码无法按文件大小对文件进行排序。
      • 是的,我监督了这一点。但无论如何:您的代码要优雅得多。 (和往常一样^^)
      猜你喜欢
      • 2017-12-22
      • 2011-06-18
      • 2014-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 2020-06-05
      • 1970-01-01
      相关资源
      最近更新 更多