[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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"

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

试试将第三行放到第四行的for...do里面

TOP

回复 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"

是不是哪里没操作对

TOP

试试这样行不?
  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

评分人数

TOP

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

回复 4# Five66


   测试没问题,完美解决,感谢! 也学习了

TOP

回复 1# qq629926132


可以试试这个位置也随机的效果
https://mp.weixin.qq.com/s/mSfzh4YhBYGjiRpuOn6L7A
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表