标题: [代码合集] [分享]批处理版智能格式化拷贝工具 [打印本页]
作者: 雨夜秋风 时间: 2010-7-26 12:04 标题: [分享]批处理版智能格式化拷贝工具
- @echo off&setlocal enabledelayedexpansion
- color 0a
- set e="%*"
- if not %e%=="" (goto 1) else for /f "skip=1" %%a in ('wmic logicaldisk where DriveType^=2 get DeviceID') do (
- set a=%%a
- set a=!a:~0,1!.bat
- more +10<"%~fs0">!a!
- start !a! "%%a"
- )
- exit
- @echo off&setlocal enabledelayedexpansion
- title 格式化工具
- color 0a
- 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
- )
- format %~1/fs:%b%/y
- del %0&exit
- :1
- @echo off&setlocal enabledelayedexpansion
- title 批量复制工具
- color 0a
- set "e=%*"
- for /f "delims=\ tokens=2" %%a in ("%e%\*") do (
- if "%%a"=="*" (goto 2) else goto 3
- )
- :2
- @echo off&setlocal enabledelayedexpansion
- title 单个格式化工具
- color 0a
- set e=%*
- echo %e:~0,2%
- 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
- )
- format %e:~0,2% /fs:%b%/y
- exit
- :3
- @echo off&setlocal enabledelayedexpansion
- color 0a
- echo "%*"
- set e="%*"
- for /f "skip=1" %%a in ('wmic logicaldisk where DriveType^=2 get DeviceID') do (
- set a=%%a
- set a=!a:~0,1!.bat
- more +47<"%~fs0">!a!
- start !a! "%%a"
- )
- exit
- @echo off
- title 批量复制工具
- color 0a
- xcopy /e %e% %~1
- del %0&exit
复制代码
这个是自学写出来的智能化工具。当你打开是格式化所有可移动磁盘,拖放单个可移动磁盘格式化单个磁盘,它智能判断等于或小于2GB容量的磁盘用FAT,大于2GB的用FAT32格式化。当你拖入任何磁盘下的文件夹到这个工具的图标上会拷贝文件夹下所有内容到所有的可移动磁盘里。望大虾们高手们多多指教,那里可以精简的代码。有那里不足之处给矛指正。但愦憾的是不能编译成EXE,编成EXE会出错不知道是为什么?有望大吓们帮忙解决。
[ 本帖最后由 雨夜秋风 于 2010-7-26 12:06 编辑 ]
作者: 雨夜秋风 时间: 2010-7-29 09:53
- @echo off&setlocal enabledelayedexpansion
- color 0a
- set n=%*
- set e=%*/
- if %e%==/ (goto 1) else if "%e:~5,1%"=="/" (goto 2) else goto 3
- :2
- title 正在单个格式化磁盘
- echo %n:~1,2%
- 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
- )
- format %n:~1,2% /fs:%b%/y
- del %0&exit
- :3
- for /f "skip=1" %%a in ('wmic logicaldisk where DriveType^=2 get DeviceID') do (
- set a=%%a
- set a=!a:~0,1!.bat
- more +20<"%~fs0">!a!
- start !a! "%%a"
- )
- exit
- @echo off
- title 批量复制工具
- color 0a
- echo 正在拷贝的文件夹是:%n%
- xcopy /e %n% %~1
- del %0&exit
- :1
- for /f "skip=1" %%a in ('wmic logicaldisk where DriveType^=2 get DeviceID') do (
- set a=%%a
- set a=!a:~0,1!.bat
- more +34<"%~fs0">!a!
- start !a! "%%a"
- )
- exit
- @echo off&setlocal enabledelayedexpansion
- title 正在格式化所有磁盘
- color 0a
- 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
- )
- format %~1/fs:%b%/y
- del %0&exit
复制代码
这已经修正了不能拷贝有空格的文件名。精简了没必要的代码。可以编译成EXE文件使用。不想编译成EXE的"%e:~5,1%"=="/"这里的5换成3就可以使用.如果不懂编译成EXE的朋友可以到我的网站(http://zhenpengwz.com)下载使用。
[ 本帖最后由 雨夜秋风 于 2010-12-12 09:11 编辑 ]
作者: hanyeguxing 时间: 2010-12-12 11:18
弄那么多“@echo off&setlocal enabledelayedexpansion”有必要吗?
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |