Board logo

标题: [文本处理] 批处理如何将文件名前缀相同的jpg图片放在同一个文件夹下? [打印本页]

作者: lihong    时间: 2018-10-27 16:46     标题: 批处理如何将文件名前缀相同的jpg图片放在同一个文件夹下?

卷 大白菜U盘 的文件夹 PATH 列表
卷序列号为 1844-B76A
G:.
    1.txt
    10110001.jpg
    10110002.jpg
    10110003.jpg
    10110004.jpg
    10110005.jpg
    10110006.jpg
    10110007.jpg
    10110008.jpg
    10110009.jpg
    13510093.jpg
    13510094.jpg
    13510095.jpg
    13510096.jpg
    13510097.jpg
    13610019.jpg
    13610020.jpg
    13610021.jpg
    13710007.jpg
    13710008.jpg
    13710009.jpg
    13710012.jpg
    13810039.jpg
    13810040.jpg
    13810041.jpg
    13810042.jpg
    13910001.jpg
    13910002.jpg
    13910003.jpg
    13910004.jpg
    14010001.jpg
    14010002.jpg
    14010003.jpg
    14110018.jpg
    14110020.jpg
    14110021.jpg

没有子文件夹
  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);
复制代码
这段代码在哪里修改检测的文件名称???
作者: flashercs    时间: 2018-10-27 17:16

把文件名都清空了。啥意思?
作者: xp3000    时间: 2018-10-28 01:45

本帖最后由 xp3000 于 2018-10-28 11:18 编辑
  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(/(.{3,4}).+$/,'$1')
  12.     if(!map[str]){map[str] = true;t+=str+'\r\n';}
  13. }
  14. WSH.echo(t);
复制代码
看样子不知道你要取3个还是4个,修改这里(.{3,4}).+$,
如果有需要可以在()后面加个特征,比如0,(.{3,6})00.+\.jpg$,
碰到101001.jpg也会和1234500000000056789.jpg算在内处理,
间隔是00,()里面是%%a内容,3和6是字符
作者: lifei259    时间: 2018-10-29 14:27

  1. @echo off&setlocal EnableDelayedExpansion
  2. for %%a in  (*.jpg) do (set a=%%a
  3. set aa=!a:~0,4!
  4. if not exist "!aa!" echo,md "!aa!"
  5. echo,move "%%~sa" "!aa!"
  6. )
  7. pause
复制代码





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