标题: [文件操作] [已解决]批处理根据txt名单,文件夹归类jpg,并输出找不到的名单 [打印本页]
作者: lzg8782000 时间: 2014-10-21 14:22 标题: [已解决]批处理根据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.
下面是我网上找到的批量剪切文件到对应指定文件夹的。可以从这改进一下。谢谢哦- @echo off&setlocal EnableDelayedExpansion
- for /f "delims=" %%i in (mingdan.txt) do (
- set a=%%i
- echo !a!
- xcopy /y !a!.jpg A班 >nul
- del /q !a!.jpg
- )
- pause
复制代码
作者: 522235677 时间: 2014-10-21 15:23
怎么知道要把哪些文件放到各个班呢?
作者: lzg8782000 时间: 2014-10-21 16:17
回复 2# 522235677
A.txt B.tx这些的名单,本来就有的,不需要理这个,只需要根据名单,分类放进去就行了
作者: 522235677 时间: 2014-10-21 18:16
回复 3# lzg8782000
名单在 A.txt B.txt 里吗
作者: lzg8782000 时间: 2014-10-22 11:54
回复 4# 522235677
A班.txt:
12
13
17
B班.txt:
14
15
名单都在txt里面,这些都是已知的。
作者: Batcher 时间: 2014-10-22 12:43
- @echo off
- for %%i in (*.txt) do (
- if not exist "%%~ni\" (
- md "%%~ni"
- )
- for /f "usebackq delims=" %%j in ("%%i") do (
- if exist "%%j.jpg" (
- move /y "%%j.jpg" "%%~ni\"
- ) else (
- >>"%%~ni找不到的名单.txt" echo,%%j
- )
- )
- )
复制代码
作者: Linuxer 时间: 2014-10-22 13:04
本帖最后由 Linuxer 于 2014-10-22 13:21 编辑
回复 6# Batcher
看到你的代码很精简~赞一个~我写了一个思路稍微古板点的。。。- @echo off&setlocal EnableDelayedExpansion
- for /f "tokens=1 delims=." %%i in ('dir /b^|findstr "*班"') do (
- if not exist %%i md %%i
- )
- for /f "delims=" %%x in (A班.txt) do (
- set a=%%x
- echo !a!
- if exist !a!.jpg xcopy /y !a!.jpg A班>nul
- if exist !a!.jpg del /q !a!.jpg
- )
- for /f "delims=" %%y in (B班.txt) do (
- set b=%%y
- echo !b!
- if exist !b!.jpg xcopy /y !b!.jpg B班>nul
- if exist !b!.jpg del /q !b!.jpg
- )
- dir /b *.jpg > 未找到班级的名单.txt
- pause
复制代码
作者: lzg8782000 时间: 2014-10-28 13:55
回复 7# Linuxer
试了一下,你这个貌似有点问题哦,停着,不动了。而且貌似只能A班、B班。
作者: Linuxer 时间: 2014-10-29 10:07
回复 8# lzg8782000
嗯,有局限性,如果要加班级,需要手动添加(类似于A班、B班的代码)
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |