找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23587|回复: 4

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

[复制链接]
发表于 2012-5-14 09:32:09 | 显示全部楼层 |阅读模式
请教论坛里的各位资深人士:
    我想从具体文件名路径中提取所属路径,应该怎么实现。  比如:  我的路径是 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\ 呢 ?
发表于 2012-5-14 10:30:46 | 显示全部楼层
  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
复制代码
 楼主| 发表于 2012-5-14 10:38:55 | 显示全部楼层
感谢 apang  , 你写的代码非常成功。

我有个疑问:如何把%%~dpa 赋值给一个变量呢, 比如:Set AA=%%~dpa  ?
因为在后面可能还会用得到
发表于 2012-5-14 10:55:09 | 显示全部楼层
回复 3# aerchi

将echo %%~dpa改成Set AA=%%~dpa
 楼主| 发表于 2012-5-14 11:35:31 | 显示全部楼层
非常谢谢你的热心帮助。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 03:33 , Processed in 0.016885 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表