操纵大量的1000多张图像

大家好 我很乐意帮助windows批处理脚本文件来操作图像, 我从旧软件迁移,它用于保存文件夹中的文件,每个文件都有自己的用户ID(例如10050.jpg) 我有1000个这样的图像,我想将图像分发到带有图像名称的新文件夹,并创建SQL文件来更新新软件,例如:
10050.jpg, 10051.jpg, 10052a.jpg, 10052b.jpg
将会去: /root/10050/10050.jpg /root/10051/10051.jpg /root/10052/10052a.jpg /root/10052/10052b.jpg 并创建了SQL文件: 更新用户设置user_img = 10050 / 10050.jpg其中user_id = 10050; 更新用户设置user_img = 10051 / 10051.jpg其中user_id = 10051; 更新用户设置user_img_a = 10052 / 10052a.jpg其中user_id = 10052; 更新用户设置user_img_b = 10052 / 10052b.jpg其中user_id = 10052; 任何人都可以帮我写一个批处理文件来提取这些信息吗? 我是初学者。 谢谢!     
已邀请:
鉴于文件名中的ID始终由5位数组成,算法可能如下所示: 在旧位置取一个文件。 从文件名中提取前5个字符作为相应用户的ID。 如果新根路径没有相应的子文件夹,请创建它。 将文件复制到新位置。 将相应的SQL脚本行添加到SQL脚本文件中。 对所有相关文件重复步骤1..5。 这是我尝试实现的:
SETLOCAL

SET "oldroot=X:originalpath"
SET "newroot=Y:newrootfolder"
SET "sqlscript=Z:pathtoscript.sql"

FOR %%F IN (%oldroot%*.jpg) DO CALL :process "%%F"

ENDLOCAL
GOTO :EOF

:process
SET filename=%~nx1
SET userid=%filename:~0,5%

IF NOT EXIST "%newroot%%userid%" MKDIR "%newroot%%userid%"
COPY %1 "%newroot%%userid%"

>>%sqlscript% ECHO update users set user_img = '%userid%%filename%' where user_id = %userid%
    
如果您有选择,这是一个Ruby for Windows脚本
require 'fileutils'
root="C:\root"
o = File.open("sql.txt","w")
Dir["*.jpg"].each do| jpg|
    dirname = jpg.scan(/^(d+)/)[0].first # get the nbumber
    Dir.mkdir(dirname) if not Dir.exists?(dirname) #make directory
    FileUtils.copy( jpg , root + "\"+dirname) #copy / move
    o.write( "update users set user_img = #{dirname}/#{jpg} where user_id = #{dirname}n" ); #create sql
end
o.close
当你在Windows中时,我不知道你为什么使用* nix目录语法,但是在你认为合适时相应地更改
root
变量。     

要回复问题请先登录注册