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

如果确认"d:\123" 存在,可以不用if not exist "d:\123" md "d:\123"

[ 本帖最后由 hanyeguxing 于 2010-4-5 13:24 编辑 ]

TOP

原帖由 smallbear 于 2010-4-5 13:31 发表
不行啊,还是只能移动一个文件,同样不能移动文件夹

move在移动目录时,只能在同分区内操作

TOP

原帖由 smallbear 于 2010-4-5 14:15 发表
那有没有其它办法?既能移动文件又能移动文件夹,而且能批量移动?

移动不是问题,麻烦的是你要支持拖放,还得支持路径及名称中有空格

TOP

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

评分人数

TOP

返回列表