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

[文件操作] 批处理怎么从指定的具体文件名中提取路径?

请教论坛里的各位资深人士:
    我想从具体文件名路径中提取所属路径,应该怎么实现。  比如:  我的路径是 C:\abc\def\aa.txt 或 D:\dd\aa\cc.xml    这样,需要提取得到的文件路径分别是: C:\abc\def\ 和  D:\dd\aa\  。  
    特征就是最末的文件名及后缀会变动,需要提取上一层的目录,应该如何实现的,谢谢各位。


我只知道
  1. set file=c:\aa\bb\aer.txt
  2. set str=%file%
  3. :loop
  4. set str=%str:*\=%
  5. echo %str% | findstr /i "\\" >nul && goto loop
  6. echo %file% ---^> %str%
  7. pause
复制代码
实现是的得到文件名(aer.txt),怎么改进得到c:\aa\bb\ 呢 ?

  1. @echo off
  2. for /f "delims=" %%a in ("c:\aa\bb\aer.txt") do echo %%~dpa
  3. pause
复制代码
  1. @echo off
  2. call :loop "c:\aa\bb\aer.txt"
  3. pause&goto :eof
  4. :loop
  5. echo %~dp1
复制代码

TOP

感谢 apang  , 你写的代码非常成功。

我有个疑问:如何把%%~dpa 赋值给一个变量呢, 比如:Set AA=%%~dpa  ?
因为在后面可能还会用得到

TOP

回复 3# aerchi

将echo %%~dpa改成Set AA=%%~dpa

TOP

非常谢谢你的热心帮助。

TOP

返回列表