Board logo

标题: [文件操作] [已解决]批处理如何提取多个目录下的图片标记? [打印本页]

作者: 228630386    时间: 2015-3-27 16:13     标题: [已解决]批处理如何提取多个目录下的图片标记?

以下是案例文件,当中也有之前解决过的导出标记公式在。可否再多实现多一个效果?
如何提取多个目录下的图片标记内容? 并列具在TXT当中。可否重复的不显示?
案例文件:  http://pan.baidu.com/s/1c071D2g
作者: 228630386    时间: 2015-3-27 17:29

如果要做到不重复列出来不能实现的话,或者将记录列举出来都可以的。
作者: pcl_test    时间: 2015-3-27 17:51

本帖最后由 pcl_test 于 2015-3-27 17:56 编辑

回复 2# 228630386
  1. 1>1/* :
  2. @echo off & setlocal enabledelayedexpansion
  3. set n=1
  4. for /f "delims=" %%a in ('dir /a-d /b /s *.jpg ^| cscript -nologo -e:jscript "%~0"') do (
  5. if !n! == 1 (set name=%%a & >"!name!.txt" echo,%%a) else (if not defined %%a set %%a=Def & >>"!name!.txt" echo,%%a)
  6. set /a n+=1
  7. )
  8. exit
  9. */
  10. var filelist = WScript.StdIn.ReadAll().split(/\r?\n/)
  11. var fso = new ActiveXObject('Scripting.FileSystemObject')
  12. var shell = new ActiveXObject('Shell.Application')
  13. var FLAG=0,NOFLAG=0
  14. var s=""
  15. for(var i in filelist){
  16. var fullpath = fso.GetFile(filelist[i]).Path
  17. var namespace = shell.Namespace(fullpath.replace(/[^\\]*$/,''))
  18. var parsename = namespace.ParseName(fullpath.replace(/.*\\/,''))
  19. var value = namespace.GetDetailsOf(parsename,namespace.GetDetailsOf('',18)==='标记'?18:5)
  20. s+=value+"\n"
  21. if(/\S/.test(value)){FLAG++}else{NOFLAG++}
  22. }
  23. WSH.Echo('共有'+(FLAG+NOFLAG)+'张JPG图片,其中'+FLAG+'张有标记,'+NOFLAG+'张无标记\n'+'标记内容包括:\n'+s)
复制代码

作者: 228630386    时间: 2015-3-27 19:37

回复 3# pcl_test


    大强大了,又学会了很多!!!
作者: CrLf    时间: 2015-3-27 19:45

回复 3# pcl_test


    咦?为什么你最近发的帖子突然没有缩进了,是什么浏览器
作者: pcl_test    时间: 2015-3-27 20:35

回复 5# CrLf
不是浏览器的问题,用手机比较多,然后疏懒了,就没再注重缩进问题了,呵呵
作者: CrLf    时间: 2015-3-27 21:50

回复 6# pcl_test


    哦,因为前阵子刚好有修改过论坛程序,以便支持 tab 和其他什么什么的,看到兄台的缩进不见了我以为是浏览器的兼容性问题
作者: 228630386    时间: 2015-3-30 22:02

回复 3# pcl_test


    你好,根据之前命令,如果需要再增加一项就是在目录下的 "555.log" 文件中,查找有没有"少图"或者"空文件夹"的指定内容。
    如果有,能否也导出在TXT当中,重复的不记录。
作者: pcl_test    时间: 2015-3-30 22:08

回复 8# 228630386
上传log文件,再举例说明下“查找有没有"少图"或者"空文件夹"的指定内容”
作者: 228630386    时间: 2015-3-30 22:23

回复 9# pcl_test


    http://pan.baidu.com/s/1qWLq1Fe
    不好意思,又要麻烦你了,LOG文件都是这个命名,查找LOG文件中的内容如出现  "缺图", "多余", "子文件夹", 这三个的话也登记在标记的TXT当中?
作者: 228630386    时间: 2015-3-31 09:42

回复 9# pcl_test


    可以看明白我的意思么? 可能表达得不太好。就是搜索这LOG文件中有没有这些子眼,如果有也同时登记在导出的TXT当中,就是标记内容的后面。
作者: pcl_test    时间: 2015-3-31 13:35

回复 11# 228630386
是每个子文件夹里都有一个log文件吗?
作者: 228630386    时间: 2015-3-31 15:01

回复 12# pcl_test


    不是,只查找和当前目录DOS命令放在一起的 log文件就可以。
作者: pcl_test    时间: 2015-3-31 17:57

本帖最后由 pcl_test 于 2015-3-31 18:04 编辑

回复 13# 228630386
log中的每行最后都带标记吗?
如果是文件还是比较容易区分
如果是文件夹就很难区分了
如E:\完成图\201503\3-3\3.8 包包及配件专场-90 完成图\5\AS30007911\30007911    子文件夹,既可以看成是E:\完成图\201503\3-3\3.8 包包及配件专场-90 完成图\5\AS30007911\30007911这个路径和子文件夹这个标记,也可以认为是E:\完成图\201503\3-3\3.8 包包及配件专场-90 完成图\5\AS30007911\30007911    子文件夹整个为路径
作者: 228630386    时间: 2015-3-31 18:28

本帖最后由 228630386 于 2015-3-31 18:30 编辑

回复 14# pcl_test


    LOG文件里面都是路径,是用软件导出的内容。因为好像缺图和多余,如果不是JPG格式就标记不出来,或者文件夹里有子文件夹。
    现在是想软件导出的LOG文件和图片的标记,同时都记录在TXT当中。
作者: pcl_test    时间: 2015-3-31 18:34

本帖最后由 pcl_test 于 2015-3-31 18:35 编辑

回复 15# 228630386
log中的每行最后都带标记吗?因为无法匹配最后一部分字段是否是标记还是路径的一部分,上面已经举例说明
作者: 228630386    时间: 2015-3-31 19:17

回复 14# pcl_test


    路径可否不理会,只检测LOG文件中有没有缺图和多余字眼,如果有就登记在TXT当中,这应该不能实现是吧?
作者: pcl_test    时间: 2015-3-31 19:21

回复 17# 228630386
对路径很难排除,因为程序很难区分路径和标记
作者: 228630386    时间: 2015-3-31 19:28

回复 18# pcl_test


    http://pan.baidu.com/s/1eQ3ZTgm
   我重新上传了一个标准的LOGO文件,  缺图;      多余;      下级目录多余;    只要检测这三个有没有在LOG中存在。
作者: pcl_test    时间: 2015-3-31 19:32

回复 17# 228630386
初步方法
http://pan.baidu.com/s/1i3Dxov7
作者: 228630386    时间: 2015-3-31 19:38

回复 20# pcl_test


    可以了喔,iconv.exe 这个是什么文件来呢?
作者: 228630386    时间: 2015-3-31 19:41

回复 20# pcl_test


    我知道了,必须要哪个文件在才能运行。如果不在就不可了。
作者: pcl_test    时间: 2015-3-31 19:45

回复 21# 228630386

iconv.exe用来转换字符编码的,你的log文件是UTF-8编码,需要转为ANSI编码,批处理才可以执行
作者: 228630386    时间: 2015-3-31 20:09

回复 23# pcl_test

iconv.exe 这个可否不运用了,直接用命令将LGO转换成TXT?
作者: 228630386    时间: 2015-3-31 20:19

回复 23# pcl_test


    或者能否将iconv.exe 和 DOS命令合并成一个exe文件?
作者: pcl_test    时间: 2015-3-31 20:30

回复 25# 228630386
http://pan.baidu.com/s/1pJ5J063
作者: 228630386    时间: 2015-3-31 21:00

回复 26# pcl_test


    http://pan.baidu.com/s/1bn4MaHh
    这个也有多余,但为什么又提取不了出来呢? 也是字符有问题么?
作者: pcl_test    时间: 2015-3-31 21:11

本帖最后由 pcl_test 于 2015-3-31 21:21 编辑

回复 27# 228630386
回复 29# 228630386
http://pan.baidu.com/s/1eQkxfFG
已更正
作者: 228630386    时间: 2015-3-31 21:17

回复 28# pcl_test


    亲,这链接打不开的?
作者: 228630386    时间: 2015-3-31 21:51

回复 28# pcl_test


    可以了,真心非常感谢,明天再继续测试,如果有问题希望你能继续帮忙,谢谢!
作者: 228630386    时间: 2015-4-1 13:00

回复 28# pcl_test


    亲,最后一个请求,能否将这句话去掉,log中提取到的内容,直接放在标记内容包括下面?
作者: pcl_test    时间: 2015-4-1 13:10

本帖最后由 pcl_test 于 2015-4-1 13:45 编辑

回复 31# 228630386
合并不去重http://pan.baidu.com/s/1CV5IQ
合并去重http://pan.baidu.com/s/1hqowNM8
作者: 228630386    时间: 2015-4-1 14:24

回复 32# pcl_test


    非常感谢,连重复的问题都帮我解决了,真心感谢!!!!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2