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

[文本处理] 批处理如何将文件名前缀相同的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);
复制代码
这段代码在哪里修改检测的文件名称???

把文件名都清空了。啥意思?

TOP

本帖最后由 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是字符

TOP

  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
复制代码
智慧是,利用最简单的代码替代复杂事情的处理过程。
付款请扫头像二维码码,谢谢

TOP

返回列表