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

[文件操作] 批处理如何将文件名前缀相同的jpg图片放在同一个文件夹下

本帖最后由 pcl_test 于 2016-1-6 10:52 编辑

批处理如何将jpg图片文件名前缀相同的放在同一个文件夹下
例如:文件名为[白腹]毛脚燕 Northern House Martin - Delichon urbica 26902.jpg
需新建文件夹,文件夹名为[白腹]毛脚燕 Northern House Martin - Delichon urbica然后将文件名前缀相同的都放在此文件夹下。

是做动物研究的?
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

  1. @echo off
  2. for /f "delims=" %%a in ('dir /b/on *.jpg') do (
  3. for /f "tokens=1,2,3,4,5,6,7,8 delims= " %%i in ("%%a") do (
  4.   echo %%m|find /i ".jpg"&&md "%%i %%j %%k %%l">nul 2>nul&move %%a "%%i %%j %%k %%l"\>nul 2>nul
  5.   echo %%n|find /i ".jpg"&&md "%%i %%j %%k %%l %%m">nul 2>nul&move %%a "%%i %%j %%k %%l %%m"\>nul 2>nul
  6.   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
  7.   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
  8. ))
  9. pause
复制代码
考虑到名称可能有长有短,多做了几行,希望看到更精简的代码
目的,学习批处理

TOP

回复 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等等,请帮忙修改下 ,非常感谢!

TOP

回复 2# 依山居


    是的 谢谢你的回复!

TOP

在文本里输入 tree /f>>2.txt,保存为bat,运行后把2.txt部分上传看看,你的图片名到底是些什么。
目的,学习批处理

TOP

本帖最后由 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
1

评分人数

    • pcl_test: 好长,打包txt附件上传PB -4

TOP

回复 3# hlzj88


    用正则匹配文件名可靠性更好。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

回复 8# codegay

正则表达式 ,,不会
目的,学习批处理

TOP

本帖最后由 pcl_test 于 2018-10-27 21:31 编辑

水一发
  1. /*&cls
  2. @echo off
  3. for /f "delims=" %%a in ('dir /a-d/b "* *.jpg"^|cscript -nologo -e:jscript "%~f0"') do (
  4.   md "%%a\"
  5.   move /y "%%a*.jpg" "%%a\"
  6. )
  7. pause&exit
  8. */
  9. var t='', map={}, files = WScript.StdIn.ReadAll().split('\r\n');
  10. for (var i=0; i<files.length; i++){
  11.     var str = files[i].replace(/\s+\S+$/,'')
  12.     if(!map[str]){map[str] = true;t+=str+'\r\n';}
  13. }
  14. WSH.echo(t);
复制代码
1

评分人数

    • hlzj88: 牛叉,看不懂技术 + 1

TOP

回复  hlzj88


    卷 DATA 的文件夹 PATH 列表
卷序列号为 00000200 0A72:C968
D:.
    123.bat
...
hh830328 发表于 2016-1-6 13:27


版主我是新人没仔细看版规,抱歉!

TOP

上接  三楼代码,,不知为什么,,建立模拟文件后,,的确只建立文件夹,不能拷贝文件进去, 10楼的代码已经很好了,,只是,我变通了一下,,也是可以完成,,算是对我写的代码一个交代,不占用论坛空间,附上一句,,能明白就好。
  1. 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
复制代码
目的,学习批处理

TOP

回复 12# hlzj88

把3楼move %%a加上双引即可

TOP

回复 13# pcl_test
谢谢了,,技巧总在不经意间。
目的,学习批处理

TOP

回复 1# hh830328
  1. @echo off&setlocal enabledelayedexpansion
  2. rem:核心区域文件夹名称获取,方法还有几种和这种基本类似
  3. for /f "delims=" %%i in ('type ".\1.txt"')do (
  4. set "name_nx=%%~nxi"
  5. set "name_nx=!name_nx: =\!"
  6. for /f "delims=" %%j in ("!name_nx!")do (
  7.   set "name=%%~nxi"
  8.   set "name=!name: %%~nxj=!"
  9.   echo,建立文件夹:!name!
  10.   echo,文件名:%%~nxi
  11. )
  12. )
  13. pause
复制代码
这么好的论坛你上哪找,运行测试环境为6.1.7601-64
注:请遵守互联网信息安全,勿用于非法用途

TOP

返回列表