Board logo

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

作者: qq629926132    时间: 2023-10-30 16:31     标题: 【已解决】批处理如何给图片随机循环添加水印?

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

和我预想的不一样, 求下解决办法和思路
作者: Five66    时间: 2023-10-30 17:05

试试将第三行放到第四行的for...do里面
作者: qq629926132    时间: 2023-10-30 17:36

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

是不是哪里没操作对
作者: Five66    时间: 2023-10-30 19:47

试试这样行不?
  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"
复制代码

作者: qq629926132    时间: 2023-10-31 09:13     标题: RE: 批处理如何给图片随机循环添加水印?

回复 4# Five66


   测试没问题,完美解决,感谢! 也学习了
作者: Batcher    时间: 2023-11-1 08:51

回复 1# qq629926132


可以试试这个位置也随机的效果
https://mp.weixin.qq.com/s/mSfzh4YhBYGjiRpuOn6L7A




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2