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

[文件操作] [已解决]批处理根据txt名单,文件夹归类jpg,并输出找不到的名单

我想要实现,运行BAT后,bat会根据A班.txt B班.txt 等等等 创建对应的文件夹,然后还会根据txt 里面的内容,将对应文件名的jpg文件放到对应的文件夹里面。
例如A班内容是:
12
13
17
B班内容是:
14
15
运行后,会自动创建A班,B班两个文件夹,然后,将12.jpg 13.jpg 放入A班文件夹,14.jpg 15.jpg放入B班文件夹,因为找不到17,还会自动生产A班找不到的名单.txt,里面的内容是17.

下面是我网上找到的批量剪切文件到对应指定文件夹的。可以从这改进一下。谢谢哦
  1. @echo off&setlocal EnableDelayedExpansion
  2. for /f "delims=" %%i in (mingdan.txt) do (
  3. set a=%%i
  4. echo !a!
  5. xcopy /y !a!.jpg A班 >nul
  6. del /q !a!.jpg
  7. )
  8. pause
复制代码
1

评分人数

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

怎么知道要把哪些文件放到各个班呢?

TOP

回复 2# 522235677
A.txt B.tx这些的名单,本来就有的,不需要理这个,只需要根据名单,分类放进去就行了

TOP

回复 3# lzg8782000


    名单在 A.txt B.txt 里吗

TOP

回复 4# 522235677

A班.txt:
12
13
17
B班.txt:
14
15

名单都在txt里面,这些都是已知的。

TOP

  1. @echo off
  2. for %%i in (*.txt) do (
  3.     if not exist "%%~ni\" (
  4.         md "%%~ni"
  5.     )
  6.     for /f "usebackq delims=" %%j in ("%%i") do (
  7.         if exist "%%j.jpg" (
  8.             move /y "%%j.jpg" "%%~ni\"
  9.         ) else (
  10.             >>"%%~ni找不到的名单.txt" echo,%%j
  11.         )
  12.     )
  13. )
复制代码
2

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 Linuxer 于 2014-10-22 13:21 编辑

回复 6# Batcher


    看到你的代码很精简~赞一个~我写了一个思路稍微古板点的。。。
  1. @echo off&setlocal EnableDelayedExpansion
  2. for /f "tokens=1 delims=." %%i in ('dir /b^|findstr "*班"') do (
  3. if not exist %%i md %%i
  4. )
  5. for /f "delims=" %%x in (A班.txt) do (
  6. set a=%%x
  7. echo !a!
  8. if exist !a!.jpg xcopy /y !a!.jpg A班>nul
  9. if exist !a!.jpg del /q !a!.jpg
  10. )
  11. for /f "delims=" %%y in (B班.txt) do (
  12. set b=%%y
  13. echo !b!
  14. if exist !b!.jpg xcopy /y !b!.jpg B班>nul
  15. if exist !b!.jpg del /q !b!.jpg
  16. )
  17. dir /b *.jpg > 未找到班级的名单.txt
  18. pause
复制代码
1

评分人数

问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

回复 7# Linuxer


    试了一下,你这个貌似有点问题哦,停着,不动了。而且貌似只能A班、B班。

TOP

回复 8# lzg8782000


    嗯,有局限性,如果要加班级,需要手动添加(类似于A班、B班的代码)
问题解决后,请在标题前面注明[已解决],并给回答者加分——化繁为简,提高工作效率!

TOP

返回列表