自动拷贝某盘内文件到另一个盘,自动根据文件名归纳,文件名只有数字的根据文件夹名,没有文件夹的根据盘符命名。
自己可更改 格式,光盘,存盘参数,可以是不同文件夹。
支持多线程,可以用做文件归纳整理用,不仅仅是视频。- @echo off&setlocal enabledelayedexpansion
- set 格式=*.rm *.rmvb *.mpg
- set "光盘=f:\"
- set "存盘=e:\"
- set "多进程数目=5"
- :st
- pushd "!光盘!" ||(msg * /w 请插入光盘再点我继续!&goto :st)
- for /f "delims=" %%i in ('dir /s /b !格式!') do (
- set "name=%%~ni"
- for %%j in (0 1 2 3 4 5 6 7 8 9 () [] 【】) do set "name=!name:%%j=!"
- if "!name!"=="" (
- if "%%~pi"=="\" (
- for /f "tokens=2 delims=卷是 " %%v in ('vol') do (
- if "!name!"=="" set "name=%%v"
- )
- if not "!name:没有=!"=="!name!" set "name=未知电影!RANDOM!"
- )
- set "str=%%~pi"
- set "str=!str:~0,-1!"
- for /l %%k in (1,1,32) do (
- if "!name!"=="" (
- if "!str:~-%%k,1!"=="\" (
- set str=!str:~-%%k!
- set "name=!str:~1!"
- )
- )
- )
- )
- if not exist "e:\!name!" md "!存盘!!name!"
- echo 正在拷贝"%%i" ---^> "!存盘!!name!\%%~nxi"
- set /a ps=0
- for /f %%p in ('tasklist /fi "IMAGENAME eq cmd.exe" ^|findstr /n "[0-9]"') do set /a ps+=1
- if !ps! lss !多进程数目! (
- start /b copy /y "%%i" "!存盘!!name!\%%~nxi">nul
- ) else (
- copy /y "%%i" "!存盘!!name!\%%~nxi">nul
- )
- )
复制代码
[ 本帖最后由 caruko 于 2011-3-14 17:58 编辑 ] |