找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 20624|回复: 5

[文件操作] 【已解决】批处理如何给图片随机循环添加水印?

[复制链接]
发表于 2023-10-30 16:31:39 | 显示全部楼层 |阅读模式
本帖最后由 qq629926132 于 2023-10-31 09:14 编辑

现在有这样一个需求

1、D盘A文件夹下有一批待处理图片需要添加水印
2、A文件夹下存在子文件夹watermark 里面有十几个水印图片

求:如何批量从watermark水印文件夹里面随机选中水印图片,批量给A文件夹下的图片添加水印呢?
比如 水印1 +图片1  水印10+图片2   水印3+图片3   类似这种


我目前尝试使用如下代码,发现随机数没办法循环随机,只随机一次,结果导致加的水印是一样的
  1. Setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /a-d /b /s "D:\A\watermark\*.png"') do (SET /A h+=1 & SET r!h!=%%i )
  3.         set /a s=!random!%%!h!+1
  4. for /f "delims=" %%a in ('dir /a-d /b  "D:\A\*.png"') do (
  5. magick.exe composite -gravity north "!r%s%!" "%%a" ".\111\%%~na-water.png" )
  6. pause
复制代码
这样执行下来的结果变成了
magick.exe composite -gravity north "水印1" "图片1" ".\111\图片1-water.png"
magick.exe composite -gravity north "水印1" "图片2" ".\111\图片2-water.png"
magick.exe composite -gravity north "水印1" "图片3" ".\111\图片3-water.png"

和我预想的不一样, 求下解决办法和思路

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2023-10-30 17:05:02 | 显示全部楼层
试试将第三行放到第四行的for...do里面
 楼主| 发表于 2023-10-30 17:36:00 | 显示全部楼层
回复 2# Five66

尝试了
结果如下:
如果直接放在Do后面, "!r%s%!" 变量直接无数据  do ( set /a s=!random!%%!h!+1

运行结果显示
magick.exe composite -gravity north "这里空的"  "样品  ( 5).png" ".\111\样品  ( 5)-water.png"

如果放在Do后面 用括号引起来 do ( set /a s=!random!%%!h!+1 )
"%%a" 变量又没数据了

运行结果显示
magick.exe composite -gravity north "D:\样本\water\水印 (13).png "  "%a"

是不是哪里没操作对
发表于 2023-10-30 19:47:44 | 显示全部楼层
试试这样行不?

  1. Setlocal enabledelayedexpansion
  2. for /f "delims=" %%i in ('dir /a-d /b /s "D:\A\watermark\*.png"') do (SET /A h+=1 & SET r!h!=%%i )

  3. for /f "delims=" %%a in ('dir /a-d /b  "D:\A\*.png"') do (
  4. set name1=%%a
  5. set name2=%%~na
  6.         set /a s=!random!%%!h!+1
  7. call :aaa
  8. )
  9. pause&exit/b

  10. :aaa
  11. magick.exe composite -gravity north "!r%s%!" "!name1!" ".\111\!name2!-water.png"
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-10-31 09:13:53 | 显示全部楼层

RE: 批处理如何给图片随机循环添加水印?

回复 4# Five66


   测试没问题,完美解决,感谢! 也学习了
发表于 2023-11-1 08:51:59 | 显示全部楼层
回复 1# qq629926132


可以试试这个位置也随机的效果
https://mp.weixin.qq.com/s/mSfzh4YhBYGjiRpuOn6L7A
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 09:14 , Processed in 0.022660 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表