- @echo off&setlocal enabledelayedexpansion
- set "d=d:\123"
- if not exist "%d%" md "%d%"
- for /F "delims=" %%a in ("%*") do (set a=%%a
- set a=!a:"=/!
- set a=!a:/ /=/!
- call:han "!a!")
- for /F "delims=" %%i in (temp.h) do if exist "%%~i\" (
- xcopy "%%i" /q /e /h /k /i "%d%\%%~ni\">nul
- rd /s /q "%%i"
- ) else move "%%i" "%d%"
- del /q temp.h
- goto :eof
- :han
- set "i=%~1"&set n=0
- :ye
- if "!i:~%n%,1!"=="" goto :eof
- if "!i:~%n%,1!"=="/" (echo.>>temp.h)else set/p=!i:~%n%,1!<nul>>temp.h
- set/a n+=1&goto :ye
复制代码 在xp sp3下:
多目录拖放操作测试通过
多文件拖放操作测试通过
多目录及文件混合拖放操作测试通过
路径中含空格测试通过
批处理在运行中会产生临时文件temp.h并在结束前删除 |