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

[代码合集] [分享]批处理版智能格式化拷贝工具

  1. @echo off&setlocal enabledelayedexpansion
  2. color 0a
  3. set e="%*"
  4. if not %e%=="" (goto 1) else for /f "skip=1" %%a in ('wmic logicaldisk where DriveType^=2 get DeviceID') do (
  5. set a=%%a
  6. set a=!a:~0,1!.bat
  7. more +10<"%~fs0">!a!
  8. start !a! "%%a"
  9. )
  10. exit
  11. @echo off&setlocal enabledelayedexpansion
  12. title 格式化工具
  13. color 0a
  14. for /f "skip=1" %%i in ('wmic logicaldisk where name^='%~1' get size') do (if %%i LEQ 2065000000 (set b=fat) else set b=fat32
  15. )
  16. format %~1/fs:%b%/y
  17. del %0&exit
  18. :1
  19. @echo off&setlocal enabledelayedexpansion
  20. title 批量复制工具
  21. color 0a
  22. set "e=%*"
  23. for /f "delims=\ tokens=2" %%a in ("%e%\*") do (
  24. if "%%a"=="*" (goto 2) else goto 3
  25. )
  26. :2
  27. @echo off&setlocal enabledelayedexpansion
  28. title 单个格式化工具
  29. color 0a
  30. set e=%*
  31. echo %e:~0,2%
  32. for /f "skip=1" %%i in ('wmic logicaldisk where name^='%e:~0,2%' get size') do (if %%i LEQ 2065000000 (set b=fat) else set b=fat32
  33. )
  34. format %e:~0,2% /fs:%b%/y
  35. exit
  36. :3
  37. @echo off&setlocal enabledelayedexpansion
  38. color 0a
  39. echo "%*"
  40. set e="%*"
  41. for /f "skip=1" %%a in ('wmic logicaldisk where DriveType^=2 get DeviceID') do (
  42. set a=%%a
  43. set a=!a:~0,1!.bat
  44. more +47<"%~fs0">!a!
  45. start !a! "%%a"
  46. )
  47. exit
  48. @echo off
  49. title 批量复制工具
  50. color 0a
  51. xcopy /e %e% %~1
  52. del %0&exit
复制代码
这个是自学写出来的智能化工具。当你打开是格式化所有可移动磁盘,拖放单个可移动磁盘格式化单个磁盘,它智能判断等于或小于2GB容量的磁盘用FAT,大于2GB的用FAT32格式化。当你拖入任何磁盘下的文件夹到这个工具的图标上会拷贝文件夹下所有内容到所有的可移动磁盘里。望大虾们高手们多多指教,那里可以精简的代码。有那里不足之处给矛指正。但愦憾的是不能编译成EXE,编成EXE会出错不知道是为什么?有望大吓们帮忙解决。

[ 本帖最后由 雨夜秋风 于 2010-7-26 12:06 编辑 ]

  1. @echo off&setlocal enabledelayedexpansion
  2. color 0a
  3. set n=%*
  4. set e=%*/
  5. if %e%==/ (goto 1) else if "%e:~5,1%"=="/" (goto 2) else goto 3
  6. :2
  7. title 正在单个格式化磁盘
  8. echo %n:~1,2%
  9. for /f "skip=1" %%i in ('wmic logicaldisk where name^='%n:~1,2%' get size') do (if %%i LEQ 2100000000 (set b=fat) else set b=fat32
  10. )
  11. format %n:~1,2% /fs:%b%/y
  12. del %0&exit
  13. :3
  14. for /f "skip=1" %%a in ('wmic logicaldisk where DriveType^=2 get DeviceID') do (
  15. set a=%%a
  16. set a=!a:~0,1!.bat
  17. more +20<"%~fs0">!a!
  18. start !a! "%%a"
  19. )
  20. exit
  21. @echo off
  22. title 批量复制工具
  23. color 0a
  24. echo 正在拷贝的文件夹是:%n%
  25. xcopy /e %n% %~1
  26. del %0&exit
  27. :1
  28. for /f "skip=1" %%a in ('wmic logicaldisk where DriveType^=2 get DeviceID') do (
  29. set a=%%a
  30. set a=!a:~0,1!.bat
  31. more +34<"%~fs0">!a!
  32. start !a! "%%a"
  33. )
  34. exit
  35. @echo off&setlocal enabledelayedexpansion
  36. title 正在格式化所有磁盘
  37. color 0a
  38. for /f "skip=1" %%i in ('wmic logicaldisk where name^='%~1' get size') do (if %%i LEQ 2100000000 (set b=fat) else set b=fat32
  39. )
  40. format %~1/fs:%b%/y
  41. del %0&exit
复制代码
这已经修正了不能拷贝有空格的文件名。精简了没必要的代码。可以编译成EXE文件使用。不想编译成EXE的"%e:~5,1%"=="/"这里的5换成3就可以使用.如果不懂编译成EXE的朋友可以到我的网站(http://zhenpengwz.com)下载使用。

[ 本帖最后由 雨夜秋风 于 2010-12-12 09:11 编辑 ]

TOP

弄那么多“@echo off&setlocal enabledelayedexpansion”有必要吗?
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表