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

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

[复制链接]
发表于 2014-10-21 14:22:16 | 显示全部楼层 |阅读模式
我想要实现,运行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
复制代码

评分

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

查看全部评分

发表于 2014-10-21 15:23:22 | 显示全部楼层
怎么知道要把哪些文件放到各个班呢?
 楼主| 发表于 2014-10-21 16:17:44 | 显示全部楼层
回复 2# 522235677
A.txt B.tx这些的名单,本来就有的,不需要理这个,只需要根据名单,分类放进去就行了
发表于 2014-10-21 18:16:30 | 显示全部楼层
回复 3# lzg8782000


    名单在 A.txt B.txt 里吗
 楼主| 发表于 2014-10-22 11:54:52 | 显示全部楼层
回复 4# 522235677

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

名单都在txt里面,这些都是已知的。
发表于 2014-10-22 12:43:14 | 显示全部楼层
  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技术 +2 收起 理由
lzg8782000 + 1 高手,佩服,感谢呀
Linuxer + 1 精简!学习了

查看全部评分

发表于 2014-10-22 13:04:15 | 显示全部楼层
本帖最后由 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技术 +1 收起 理由
lzg8782000 + 1 这个也很牛呀,感谢呀

查看全部评分

 楼主| 发表于 2014-10-28 13:55:27 | 显示全部楼层
回复 7# Linuxer


    试了一下,你这个貌似有点问题哦,停着,不动了。而且貌似只能A班、B班。
发表于 2014-10-29 10:07:16 | 显示全部楼层
回复 8# lzg8782000


    嗯,有局限性,如果要加班级,需要手动添加(类似于A班、B班的代码)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 20:50 , Processed in 0.034128 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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