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

TOP

文件名不能含 & 符号
代码未测试,运行前请先做好备份!!!
:
  1. @echo off
  2. set "var=%*"
  3. cls
  4. for %%i in (%var%) do (
  5.    if not exist "%%~i\" (
  6.       if not exist "%%~i" (
  7.          echo 没有 %%~i 文件(夹),请检查文件名是否含 ^& 符号
  8.        ) else (move "%%~i" "d:\123\")
  9.      ) else (
  10.        if /i "%%~di"=="d:" (move "%%~i" "d:\123\") else (
  11.           rem 移动文件夹
  12.           for /f "delims=" %%j in ('dir/b/s/a-d "%%~i\*.*"') do (
  13.               set "num=%%~dpj"
  14.               setlocal enabledelayedexpansion
  15.               set "num=d:\123!num:*%%~i=!\"
  16.               if not exist "!num!" md "!num!"
  17.               move "%%~i\%%~nxj" "!num!"
  18.               endlocal
  19.           )
  20.           rd /s /q "%%~i"
  21.         )
  22.      )
  23. )
  24. pause
复制代码

[ 本帖最后由 FOR 于 2010-4-5 17:22 编辑 ]
1

评分人数

TOP

应该是空文件夹没有删除吧,再试试,以修改过。

TOP

再试试~。。。。。。。。。。。。。。。。。。

TOP

我的xp sp2 无法处理含&符号的文件名
@echo off
echo %*
pause
遇到 c:\a&b 这样的文件夹就只显示 c:\a

TOP

  1. @echo off
  2. call :loop %*
  3. echo %var%
  4. pause
  5. :loop
  6. set var=%var% "%~1"
  7. if not "%~2"=="" shift&goto loop
  8. goto :eof
复制代码

TOP

返回列表