【问题标题】:Batch file to copy files from folders&sub folders using a file list only if file size greater than仅当文件大小大于时,才使用文件列表从文件夹和子文件夹中复制文件的批处理文件
【发布时间】:2017-05-17 22:53:13
【问题描述】:

我们的数据库中有仓库库存的图像。 我们会将这些图像的文件名列表提取到 .txt 文件中。

file-list.txt 的内容例如:

060128412948.jpg
068912475982.jpg
etc.

每只股票我们有 3 张图片,其中 2 张是低分辨率图片,其中 1 张是高分辨率图片。

我需要脚本仅将文件夹/子文件夹中每只股票的高分辨率图像复制到母目录中。

这是我目前所拥有的,但这只是从源目标文件夹复制文件列表中列出的文件。

@echo off

set src_folder=C:\Users\jakub.parszewski\Desktop\TT\SalesOrders\NewOrder
set dst_folder=C:\Users\jakub.parszewski\Desktop\TT\Test
set file_list=C:\Users\jakub.parszewski\Desktop\TT\File-list.txt

set maxbytesize=300000

for /f "delims=" %%A in (%file_list% do set size=%%~zA

for /f "delims=" %%f in (%file_list%) do (
    if %size% GTR %maxbytesize% 
    xcopy "%src_folder%\%%f" "%dst_folder%\"
)

pause

【问题讨论】:

  • 那是因为你只执行了1.,你需要在@前加上2. & 3. 987654323@。我非常怀疑此站点上没有没有包含文件大小检查的for 循环示例。
  • 您能进一步解释一下吗?我在这方面没有太多经验,即使寻找答案也没有给我任何实际工作。我的经理要求我这样做。
  • 如果您搜索此站点或使用搜索引擎,您会发现许多通过for 循环确定文件大小的方法示例。您也可以在命令提示符窗口中输入for /? 并读取输出的数据。
  • 感谢 Compo,我一直在搜索和玩一些东西,但对于新手来说,它似乎并没有让我到任何地方。我已经更新了我的问题中的代码,我是否更接近我所在的位置,或者我只是在远离我需要的东西?我遇到的问题是我需要脚本首先从 file-list.txt 中获取文件名,然后检查该文件的大小。如果大小大于任何值,则 xcopy 如果大小小于任何值,则忽略。
  • 您能否提供一个包含在 File-list.txt 中的内容的示例,并向我们解释该列表是如何生成的。您提供的信息越多,您就越有可能获得满意的解决方案。 (您最初的问题是关于大于 2MB 的 jpeg 文件,但是您的代码建议销售订单和 0.2861MB 的文件大小)

标签: database batch-file size jpeg xcopy


【解决方案1】:

当您考虑实现更健壮方法的潜在更好方法时,这里有一个 For 循环示例,使用类似于您的原始意图的方法。

@Echo Off

Set "src_folder=%UserProfile%\Desktop\TT\SalesOrders\NewOrder"
Set "dst_folder=%UserProfile%\Desktop\TT\Test"
Set "file_list=%UserProfile%\Desktop\TT\File-list.txt"
Set "maxbytesize=3000"

For /F "UseBackQ Delims=" %%A In ("%file_list%") Do For /F %%B In (
    'Where/T /F "%src_folder%":"%%~nxA" 2^>Nul'
) Do If %%B Gtr %maxbytesize% Copy "%src_folder%\%%~nxA" "%dst_folder%">Nul

Pause

我使用 Copy 作为您的 XCopy 示例,除了基本副本之外没有使用任何选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多