Board logo

标题: [原创] 批处理实现绝对路径转换相对路径 [打印本页]

作者: canyuexiaolang    时间: 2012-5-11 20:40     标题: 批处理实现绝对路径转换相对路径

  1. @echo off & setlocal enabledelayedexpansion
  2. set /p "abspath=U盘绝对路径:"
  3. if not defined abspath goto :eof
  4. if not exist "!abspath!" goto :eof
  5. if not "!abspath:~-1!"=="\" set "abspath=!abspath!\"
  6. call :pathlen
  7. for /r "%abspath:~0,2%" %%i in (.) do (
  8.     setlocal
  9.     set "_abspath=%%i" & set "_abspath=!_abspath:~0,-1!"
  10.     call :getrelpath "!_abspath!"
  11.     for /f "tokens=1* delims=\" %%q in ("!abspath!") do set "rel=!rel:~3!%%r"
  12.     if /i "!_abspath:~0,%pathlen%!"=="!abspath!" set rel=!_abspath:~%pathlen%!
  13.     echo !_abspath! ---^> !rel!
  14.     endlocal
  15. )
  16. pause>nul
  17. goto :eof
  18. :getrelpath
  19. for /f "tokens=1* delims=\" %%i in ("%~1") do (
  20.     set rel=..\!rel!
  21.     call :getrelpath "%%j"
  22. )
  23. goto :eof
  24. :pathlen
  25. for /l %%i in (0 1 100) do if "!abspath:~%%i,1!"=="" set "pathlen=%%i" & goto :eof
  26. goto :eof
复制代码



本来就不是什么技术性的。发给大家学习玩玩吧
作者: canyuexiaolang    时间: 2012-5-11 20:42

本来打算autorun.inf和desktop.ini用的。输入一个路径。比如i:\system  它会列出i:\所有的路径并转换成相对于i:\system的路径




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2