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

[文本处理] 批处理在文本中提取固定位置的内容,并移动图片

先谢谢您了。
现有文本1.txt,内容如下
  1. [#オリジナル VISIONS - 米山舞的插画 - pixiv|https://www.111.net/artworks/84603466]
  2. [#オリジナル EGO  Id - 米山舞的插画 - pixiv|https://www.111.net/artworks/89828644]
  3. [#オリジナル EGO  Es - 米山舞的插画 - pixiv|https://www.111.net/artworks/89828461]
  4. [#オリジナル EGO  SEA - 米山舞的插画 - pixiv|https://www.111.net/artworks/89828769]
  5. [#オリジナル EGO  MELT - 米山舞的插画 - pixiv|https://www.111.net/artworks/89828749]
  6. [#オリジナル silk moth - 米山舞的插画 - pixiv|https://www.111.net/artworks/79342948]
  7. 米山舞
  8. 女孩
  9. 时尚
  10. 插画师
  11. [#ラブライブ ドヤんみちゃん - みさいる的插画 - pixiv|https://www.111.net/artworks/51222454]
  12. [#バーチャルYouTuber シオンちゃん - SONOJI的插画 - pixiv|https://www.111.net/artworks/85735530]
  13. [#Fate/GrandOrder ドヤ顔メガネアビィ~ - 相川りょう的插画 - pixiv|https://www.111.net/artworks/77077689]
  14. [#舰これ 阴阳师北上様 - HIBIKI的插画 - pixiv|https://www.111.net/artworks/77636099]
  15. [#オリジナル じゃんけんの时に『グチョパ』を出して胜とうとするサブカル少女 - tetto的插画 - pixiv|https://www.111.net/artworks/82204177]
  16. [#创作 ぷぷぷ - みなみさき的插画 - pixiv|https://www.111.net/artworks/76150534]
  17. 得意脸
  18. 女孩
  19. [#オリジナル 水游び - 蝉时雨的插画 - pixiv|https://www.111.net/artworks/70235550]
  20. [#初音ミク 初音みく生诞2020 - オギモトズキン的插画 - pixiv|https://www.111.net/artworks/84463351]
  21. [#ラブライブサンシャイン サンシャイン - ギノピー@FANBOX开始的插画 - pixiv|https://www.111.net/artworks/57978750]
  22. [#ラブライブサンシャイン 水着ちかっち - ハヤオキ的插画 - pixiv|https://www.111.net/artworks/82687757]
  23. [#碧蓝航线 碧蓝航线 - 木子翔的插画 - pixiv|https://www.111.net/artworks/68989001]
  24. [#女の子 练习 - 砂糖の音的插画 - pixiv|https://www.111.net/artworks/71468662]
  25. 水枪
  26. 水手服
  27. 泳装
  28. 女孩
  29. [#ラブライブ umi - miazi的插画 - pixiv|https://www.111.net/artworks/54600964]
  30. [#ラブライブ あ~ん - 柊ぽぷら的插画 - pixiv|https://www.111.net/artworks/ ]
  31. [#ラブライブ10周年 ラブライブ10周年 - とうち的插画 - pixiv|https://www.111.net/artworks/82046781]
  32. [#ラブライブ 海未诞 - 岩奈ケイトお仕事受付中的插画 - pixiv|https://www.111.net/artworks/67767947]
  33. [#ラブライブ 濡れるッとか言いそうな海未ちゃん - へいろー的插画 - pixiv|https://www.111.net/artworks/40945525]
  34. [#园田海未 Umi - 瑛的插画 - pixiv|https://www.111.net/artworks/52161015]
  35. 园田海未
  36. Love Live
复制代码
并且,桌面上还有很多图片,图片名是1.txt中每行最后的数字,比如84603466.jpg  、 40945525.jpg  、 52161015.jpg ……

=======需求如下:====
将每组 [# 中的第2行内容最后的数字,它所对应的图片找出来。并全部移动到文件夹 123 中。
比如上述内容中,每组有6行 [# 内容,每组的第2行[#,分别就是89828644  85735530 84463351 48190400
把这4个数字对应的 .jpg 图片,全都移动到桌面的文件夹123中。

*数字对应的图片也在桌面上。

谢谢您!

本帖最后由 WHY 于 2021-5-16 23:58 编辑
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. md 123 2>nul
  4. for /f "tokens=*" %%i in (1.txt) do (
  5.     set "s=%%i"
  6.     if "!s:~0,2!" == "[#" (
  7.         set /a n+=1
  8.         if "!n!" == "2" (
  9.             set "file=%%~ni"
  10.             move "!file:]=!.jpg" "123\"
  11.         )
  12.     ) else (
  13.         set n=0
  14.     )
  15. )
  16. pause
复制代码

TOP

第4组的第2行后面有图片名吗?

TOP

回复 3# WHY


    不好意思,有的,我编辑帖子时,复制名字时,不小心删掉了。 都有的。

TOP

回复 3# WHY


    请问,如果不是从桌面上的图片中找,而是从  C:\Users\Administrator\Desktop\small\  中找匹配的图片,再移动到文件夹123,该如何更改上面的代码呢?谢谢你呀~

TOP

回复 5# 灯塔彭于晏
只要文本文件、批处理、图片在同一目录就可以。

TOP

回复 6# qixiaobin0715


    啊~谢谢。
只是现在想进阶一下,因为图片现在在左面,太多了。想整理到文件夹里,然后再提取到123里,这样操作的过程桌面起码是简洁的。
就是优化,优化一下,哈哈!

TOP

本帖最后由 qixiaobin0715 于 2021-5-18 06:57 编辑

回复 7# 灯塔彭于晏
将下列代码加在2楼代码1~2行之间,文本文件、批处理文件放在small文件夹下试试:
  1. move C:\Users\Administrator\Desktop\*.jpg C:\Users\Administrator\Desktop\small
  2. cd /d "C:\Users\Administrator\Desktop\small"
复制代码
已修改

TOP

回复 8# qixiaobin0715


    好像不行,会有cmd窗口提示移动1个文件
但123里面是空的

TOP

回复 5# 灯塔彭于晏
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. cd /d "C:\Users\Administrator\Desktop\small"
  4. set "DstFolder=C:\Users\Administrator\Desktop\123"
  5. if not exist "%DstFolder%" (
  6.     md "%DstFolder%"
  7. )
  8. for /f "tokens=*" %%i in (1.txt) do (
  9.     set "s=%%i"
  10.     if "!s:~0,2!" == "[#" (
  11.         set /a n+=1
  12.         if "!n!" == "2" (
  13.             set "file=%%~ni"
  14.             move "!file:]=!.jpg" "%DstFolder%"
  15.         )
  16.     ) else (
  17.         set n=0
  18.     )
  19. )
复制代码
1

评分人数

    • 灯塔彭于晏: 肯定可以了,虽然没文件可供测试。明天试试 ...技术 + 1
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 qixiaobin0715 于 2021-5-18 10:57 编辑

回复 9# 灯塔彭于晏
可能是你的桌面路径有问题。
利用2楼代码前面加上移动桌面图片文件的命令,测试没问题,完整代码为:
  1. @echo off
  2. move "%HOMEPATH%\Desktop\*.jpg" "%~dp0"
  3. setlocal enabledelayedexpansion
  4. md 123 2>nul
  5. for /f "tokens=*" %%i in (1.txt) do (
  6.     set "s=%%i"
  7.     if "!s:~0,2!" == "[#" (
  8.         set /a n+=1
  9.         if "!n!" == "2" (
  10.             set "file=%%~ni"
  11.             move "!file:]=!.jpg" "123\"
  12.         )
  13.     ) else (
  14.         set n=0
  15.     )
  16. )
  17. pause
复制代码
批处理文件test.bat和文本文件1.txt放在small文件夹中,运行test.bat。
1

评分人数

TOP

回复 9# 灯塔彭于晏
楼上代码已重新修改

TOP

回复 12# qixiaobin0715


    额外咨询个小问题可以吗?
如果文件夹small里有不知道多少个子文件夹(不是特别多,十来个,具体不知道。)但每个文件夹里都是图片。
如何全部提取到 桌面的 文件夹 234 中呢? 并且重复的话会强行覆盖。

TOP

是move还是copy?重复要覆盖吗?

TOP

是这样吗?
  1. @echo off
  2. for /r %%a in (*.jpg) do copy "%%a" "%HOMEPATH%\Desktop\234"
  3. pause
复制代码
1

评分人数

TOP

返回列表