标题: [文件操作] 批处理如何将文件名前缀相同的jpg图片放在同一个文件夹下 [打印本页]
作者: hh830328 时间: 2016-1-6 10:03 标题: 批处理如何将文件名前缀相同的jpg图片放在同一个文件夹下
本帖最后由 pcl_test 于 2016-1-6 10:52 编辑
批处理如何将jpg图片文件名前缀相同的放在同一个文件夹下
例如:文件名为[白腹]毛脚燕 Northern House Martin - Delichon urbica 26902.jpg
需新建文件夹,文件夹名为[白腹]毛脚燕 Northern House Martin - Delichon urbica然后将文件名前缀相同的都放在此文件夹下。
作者: 依山居 时间: 2016-1-6 10:54
是做动物研究的?
作者: hlzj88 时间: 2016-1-6 11:07
- @echo off
- for /f "delims=" %%a in ('dir /b/on *.jpg') do (
- for /f "tokens=1,2,3,4,5,6,7,8 delims= " %%i in ("%%a") do (
- echo %%m|find /i ".jpg"&&md "%%i %%j %%k %%l">nul 2>nul&move %%a "%%i %%j %%k %%l"\>nul 2>nul
- echo %%n|find /i ".jpg"&&md "%%i %%j %%k %%l %%m">nul 2>nul&move %%a "%%i %%j %%k %%l %%m"\>nul 2>nul
- echo %%o|find /i ".jpg"&&md "%%i %%j %%k %%l %%m %%n">nul 2>nul&move %%a "%%i %%j %%k %%l %%m %%n"\>nul 2>nul
- echo %%p|find /i ".jpg"&&md "%%i %%j %%k %%l %%m %%n %%o">nul 2>nul&move "%%a" "%%i %%j %%k %%l %%m %%n %%o"\>nul 2>nul
- ))
- pause
复制代码
考虑到名称可能有长有短,多做了几行,希望看到更精简的代码
作者: hh830328 时间: 2016-1-6 12:12
回复 3# hlzj88
试了一下,部分成功移动并新建文件夹,如[白腹]毛脚燕 Northern House Martin - Delichon urbica [树]麻雀 Eurasian Tree Sparrow - Passer montanus
但是大部分不成功 比如:[树]麻雀 Eurasian Tree Sparrow - Passer montanus、[黑头]白鹮 Black-headed Ibis - Threskiornis melanocephalus 、[蓝须]夜蜂虎 Blue-bearded Bee-eater - Nyctyornis athertoni、[斑头]绿拟啄木鸟 Lineated Barbet - Megalaima lineata等等,请帮忙修改下 ,非常感谢!
作者: hh830328 时间: 2016-1-6 12:13
回复 2# 依山居
是的 谢谢你的回复!
作者: hlzj88 时间: 2016-1-6 13:19
在文本里输入 tree /f>>2.txt,保存为bat,运行后把2.txt部分上传看看,你的图片名到底是些什么。
作者: hh830328 时间: 2016-1-6 13:27
本帖最后由 pcl_test 于 2016-1-13 12:55 编辑
回复 6# hlzj88
卷 DATA 的文件夹 PATH 列表
卷序列号为 00000200 0A72:C968
D:.
123.bat
2.txt
[东方]斑鵖 Variable Wheatear - Oenanthe picata 24340.jpg
[东方]斑鵖 Variable Wheatear - Oenanthe picata 24341.jpg
[亚洲]短趾百灵 Asian Short-toed Lark - Calandrella cheleensis 33969.jpg
[亚洲]短趾百灵 Asian Short-toed Lark - Calandrella cheleensis 33970.jpg
[斑头]绿拟啄木鸟 Lineated Barbet - Megalaima lineata 3586.jpg
[斑头]绿拟啄木鸟 Lineated Barbet - Megalaima lineata 3587.jpg
[日本]歌鸲 Japanese Robin - Erithacus akahige 22155.jpg
[日本]歌鸲 Japanese Robin - Erithacus akahige 22156.jpg
[普通]鸬鹚 Great Cormorant - Phalacrocorax carbo 14200.jpg
[普通]鸬鹚 Great Cormorant - Phalacrocorax carbo 14201.jpg
[树]麻雀 Eurasian Tree Sparrow - Passer montanus 35187.jpg
[树]麻雀 Eurasian Tree Sparrow - Passer montanus 35188.jpg
[白腹]毛脚燕 Northern House Martin - Delichon urbica 26913.jpg
[白腹]毛脚燕 Northern House Martin - Delichon urbica 26914.jpg
[白腿]小隼 Pied Falconet - Microhierax melanoleucos 13329.jpg
[白腿]小隼 Pied Falconet - Microhierax melanoleucos 13330.jpg
[红]梅花雀 Red Avadavat - Amandava amandava 36617.jpg
[红]梅花雀 Red Avadavat - Amandava amandava 36618.jpg
[蒙古]百灵 Mongolian Lark - Melanocorypha mongolica 33939.jpg
[蒙古]百灵 Mongolian Lark - Melanocorypha mongolica 33940.jpg
[蓝须]夜蜂虎 Blue-bearded Bee-eater - Nyctyornis athertoni 4707.jpg
[蓝须]夜蜂虎 Blue-bearded Bee-eater - Nyctyornis athertoni 4708.jpg
[黑头]白鹮 Black-headed Ibis - Threskiornis melanocephalus 15635.jpg
[黑头]白鹮 Black-headed Ibis - Threskiornis melanocephalus 15636.jpg
三宝鸟 Dollarbird - Eurystomus orientalis 4132.jpg
三宝鸟 Dollarbird - Eurystomus orientalis 4133.jpg
三趾啄木鸟 Three-toed Woodpecker - Picoides tridactylus 3258.jpg
三趾啄木鸟 Three-toed Woodpecker - Picoides tridactylus 3259.jpg
三趾翠鸟 Oriental Dwarf Kingfisher - Ceyx erithacus 4374.jpg
三趾翠鸟 Oriental Dwarf Kingfisher - Ceyx erithacus 4375.jpg
三趾鸥 Black-legged Kittiwake - Rissa tridactyla 11215.jpg
三趾鸥 Black-legged Kittiwake - Rissa tridactyla 11216.jpg
三趾鸦雀 Three-toed Parrotbill - Paradoxornis paradoxus 33472.jpg
三趾鸦雀 Three-toed Parrotbill - Paradoxornis paradoxus 33473.jpg
三趾鹬 Sanderling - Calidris alba 8954.jpg
三趾鹬 Sanderling - Calidris alba 8955.jpg
三道眉草鹀 Meadow Bunting - Emberiza cioides 38647.jpg
三道眉草鹀 Meadow Bunting - Emberiza cioides 38648.jpg
丑鸭 Harlequin Duck - Histrionicus histrionicus 2536.jpg
丑鸭 Harlequin Duck - Histrionicus histrionicus 2537.jpg
丘鹬 Eurasian Woodcock - Scolopax rusticola 7854.jpg
丘鹬 Eurasian Woodcock - Scolopax rusticola 7855.jpg
丛林鸦 Jungle Crow - Corvus levaillantii 18115.jpg
丛林鸦 Jungle Crow - Corvus levaillantii 18116.jpg
东方叽咋柳莺 Mountain Chiffchaff - Phylloscopus sindianus 29576.jpg
东方叽咋柳莺 Mountain Chiffchaff - Phylloscopus sindianus 29577.jpg
东方大苇莺 Oriental Reed Warbler - Acrocephalus orientalis 29347.jpg
东方大苇莺 Oriental Reed Warbler - Acrocephalus orientalis 29348.jpg
东方沙白喉林莺 Margellanic Lesser Whitethroat - Sylvia margelanica 33876.jpg
东方白鹳 Oriental Stork - Ciconia boyciana 16007.jpg
东方白鹳 Oriental Stork - Ciconia boyciana 16008.jpg
东方角鸮 Oriental Scops Owl - Otus sunia 5786.jpg
东方角鸮 Oriental Scops Owl - Otus sunia 5787.jpg
东方鸻 Oriental Plover - Charadrius veredus 10357.jpg
东方鸻 Oriental Plover - Charadrius veredus 10358.jpg
丝光椋鸟 Red-billed Starling - Sturnus sericeus 24444.jpg
丝光椋鸟 Red-billed Starling - Sturnus sericeus 24445.jpg
作者: codegay 时间: 2016-1-6 14:51
回复 3# hlzj88
用正则匹配文件名可靠性更好。
作者: hlzj88 时间: 2016-1-6 14:58
回复 8# codegay
正则表达式 ,,不会
作者: pcl_test 时间: 2016-1-6 15:30
本帖最后由 pcl_test 于 2018-10-27 21:31 编辑
水一发- /*&cls
- @echo off
- for /f "delims=" %%a in ('dir /a-d/b "* *.jpg"^|cscript -nologo -e:jscript "%~f0"') do (
- md "%%a\"
- move /y "%%a*.jpg" "%%a\"
- )
- pause&exit
- */
-
- var t='', map={}, files = WScript.StdIn.ReadAll().split('\r\n');
- for (var i=0; i<files.length; i++){
- var str = files[i].replace(/\s+\S+$/,'')
- if(!map[str]){map[str] = true;t+=str+'\r\n';}
- }
- WSH.echo(t);
复制代码
作者: hh830328 时间: 2016-1-6 15:38
回复 hlzj88
卷 DATA 的文件夹 PATH 列表
卷序列号为 00000200 0A72:C968
D:.
123.bat
...
hh830328 发表于 2016-1-6 13:27
版主我是新人没仔细看版规,抱歉!
作者: hlzj88 时间: 2016-1-8 21:33
上接 三楼代码,,不知为什么,,建立模拟文件后,,的确只建立文件夹,不能拷贝文件进去, 10楼的代码已经很好了,,只是,我变通了一下,,也是可以完成,,算是对我写的代码一个交代,不占用论坛空间,附上一句,,能明白就好。- echo %%p|find /i ".jpg"&&md "%%i %%j %%k %%l %%m %%n %%o">nul 2>nul&move "%%i %%j %%k %%l %%m %%n %%o*.jpg" "%%i %%j %%k %%l %%m %%n %%o"\>nul 2>nul
复制代码
作者: pcl_test 时间: 2016-1-8 22:57
回复 12# hlzj88
把3楼move %%a加上双引即可
作者: hlzj88 时间: 2016-1-8 23:02
回复 13# pcl_test
谢谢了,,技巧总在不经意间。
作者: /zhqsystem/zhq 时间: 2016-1-9 02:40
回复 1# hh830328
- @echo off&setlocal enabledelayedexpansion
- rem:核心区域文件夹名称获取,方法还有几种和这种基本类似
- for /f "delims=" %%i in ('type ".\1.txt"')do (
- set "name_nx=%%~nxi"
- set "name_nx=!name_nx: =\!"
- for /f "delims=" %%j in ("!name_nx!")do (
- set "name=%%~nxi"
- set "name=!name: %%~nxj=!"
- echo,建立文件夹:!name!
- echo,文件名:%%~nxi
- )
- )
- pause
复制代码
作者: hlzj88 时间: 2016-1-9 07:02
回复 15# /zhqsystem/zhq
好思路
作者: hh830328 时间: 2016-1-12 16:40
已经解决了 非常感谢!
你们太牛了
作者: ygqiang 时间: 2016-1-12 17:12
回复 17# hh830328
给出解决的代码吧。谢谢
作者: hh830328 时间: 2016-1-19 15:23
回复 18# ygqiang
就是10楼的代码!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |