Board logo

标题: [文件管理] 批处理按文件名称自动分类 [打印本页]

作者: fml520    时间: 2008-4-20 22:29     标题: 批处理按文件名称自动分类

按文件名称自动分类代码1
  1. @echo off
  2. title 文件分类@fmr520 2008/4/20
  3. mode con cols=45 lines=15
  4. color 2f
  5. call :shuoming
  6. set "mulu=:"
  7. set "houzhui=:"
  8. cls
  9. setlocal EnableDelayedExpansion  
  10. :ml_
  11. cls
  12. echo\&echo. 文件夹格式是 d:\abc\mp3
  13. echo\&echo. 必须带有 \ 否则输入无效
  14. echo\&echo. ( .\ 表示当前文件夹 )
  15. echo\&echo.
  16. set /p mulu=将要操作的文件夹放到这里:
  17. set mulu=%mulu:"=%
  18. if "%mulu%" == ":" goto ml_
  19. if "%mulu%" == ".\" goto hz_
  20. if not "%mulu:~2,1%" == "\" call :cuo "%mulu%"
  21. :hz_
  22. cls
  23. echo\&echo.程序运行中...
  24. ping 127.1 -n 1 >nul
  25. for /f "tokens=*" %%a in (list.ini) do (set vaa=%%a
  26. pushd "%mulu%"
  27. for /f "tokens=*" %%i in ('dir/b ^|findstr /i "!vaa!" ') do (
  28.    if not exist !vaa! md !vaa!
  29.            move "%%i" !vaa!
  30.           )
  31. )
  32. cls
  33. echo\echo. 完成!
  34. pause>nul&exit
  35. :cuo
  36. echo\&echo. 你输入的 %1 无效!
  37. pause>nul
  38. if %1 == "%houzhui%" goto hz_
  39. if %1 == "%mulu%" goto ml_
  40. goto ml_
  41. :shuoming
  42. echo 把你要分类的文件名写进list.ini这个文件里,一行只能写一个文件名,否则会出错。 >>说明.txt
  43. start 说明.txt
  44. ping 127.1 -n 2 >nul
  45. del 说明.txt /q/f/a
  46. goto :eof
复制代码
按文件名称自动分类代码2
  1. @echo off
  2. title 文件分类@fmr520 2008/4/19
  3. mode con cols=45 lines=15
  4. color 2f
  5. set "mulu=:"
  6. set "houzhui=:"
  7. cls
  8. setlocal EnableDelayedExpansion  
  9. :ml_
  10. cls
  11. echo\&echo. 文件夹格式是 d:\abc\mp3
  12. echo\&echo. 必须带有 \ 否则输入无效
  13. echo\&echo. ( .\ 表示当前文件夹 )
  14. echo\&echo.
  15. set /p mulu=将要操作的文件夹放到这里:
  16. set mulu=%mulu:"=%
  17. if "%mulu%" == ":" goto ml_
  18. if "%mulu%" == ".\" goto hz_
  19. if not "%mulu:~2,1%" == "\" call :cuo "%mulu%"
  20. :hz_
  21. cls
  22. echo\&echo.输入要分类的后缀名,如 *.mp3 *.swf *.txt 或 *
  23. echo\&echo.可以同时输入多个后缀如 *.mp3 *.swf *.txt
  24. echo\&echo.输入 * 会对该目录下的全部文件分类
  25. echo\&echo.
  26. set /p houzhui=输入要分类的后缀名:
  27. if "%houzhui%" == ":" goto hz_
  28. if not "%houzhui:~0,1%" == "*" call :cuo "%houzhui%"
  29. cls
  30. echo\&echo. 程序正在运行中...
  31. ping 172.1 /n 1  >nul
  32. pushd "%mulu%"
  33. for /f "tokens=1* delims=-,.; " %%a in ('dir/b %houzhui%')  do (
  34.     set var=%%~na
  35.        if not exist !var! md !var!
  36.     move "%%a?%%b" !var!
  37.   )>nul 2>nul
  38. cls
  39. echo\echo. 完成!
  40. pause>nul&exit
  41. :cuo
  42. echo\&echo. 你输入的 %1 无效!
  43. pause>nul
  44. if %1 == "%houzhui%" goto hz_
  45. if %1 == "%mulu%" goto ml_
  46. goto ml_
复制代码
链接: https://pan.baidu.com/s/1GmoENYtoAWKdbOdiXV2SYg?pwd=eb2q
作者: xc007    时间: 2008-4-23 21:33

收藏了,再学习一下,多了解嘛
作者: conglin58    时间: 2010-6-18 17:20

还是这儿好!找到我最想要的!
作者: 狂人一个    时间: 2012-6-2 20:37

学习了,有没有更简单一点的代码!
作者: gawk    时间: 2012-6-2 22:27

回复 4# 狂人一个


    根据自己的实际需求写出来的代码最简单




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