不破坏文件夹的结构,移动文件夹。
::- @echo off
- :: code by 随风 2007-11-12 @ bbs.bathome.net
- color 1f&echo\
- echo 请输入要移动的文件夹全路径,或拖动文件夹到此窗口:
- set /p var=
- echo.&echo 请输入目标全路径: 直接回车为当前路径。
- set /p num=
- if "%num%"=="" set num=%cd%
- echo\
- set str=
- set var=%var:"=%
- if "%var:~-1%"=="\" set var=%var:~0,-1%
- if "%num:~-1%"=="\" set num=%num:~0,-1%
- cls&echo\&echo 即将移动 %var% 文件夹到 %num%
- echo\
- echo 如果移动过程遇到同名文件,请选择是覆盖原文件,还是在新文件后面加序号。
- echo\&echo 按 f 覆盖,其它键在新文件后面加序号:
- echo\
- set /p xuhao=
- set varn=%var:*:=%
- :lis
- set wjj=%varn:*\=%
- if not "%varn%"=="%wjj%" set varn=%wjj%&goto lis
- setlocal EnableDelayedExpansion
- for /f "delims=" %%a in ('dir /s /b /a-d "%var%"') do (
- set lj=%%~dpa
- call set lj=%%lj:!var!=%%
- md "!num!\!wjj!!lj!"2>nul
- set max=!num!\!wjj!!lj!%%~na
- if /i not "!xuhao!"=="f" (
- call :loop "%%a" "%%~xa"
- ) else move "%%a" "!num!\!wjj!!lj!%%~nxa"
- )
- for /f "delims=" %%a in ('dir/ad/b/s "%var%\*.*"^|sort /r') do rd/q "%%a"
- rd/q "%var%"
- color 0a&cls
- echo\&echo 移动完成,按 y 打开文件夹查看,按其它键退出。。。
- set /p xz=
- if /i "%xz%"=="y" start "" "%num%"
- exit
- :loop
- if exist "!max!!str!%~2" set /a str+=1&goto loop
- move %1 "!max!!str!%~2"
- goto :eof
复制代码
|