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

[文本处理] [已解决]批处理如何获取目录路径 \ 符号最后的变量?

[复制链接]
发表于 2011-10-7 20:43:31 | 显示全部楼层 |阅读模式
本帖最后由 kswdiy 于 2011-11-18 11:22 编辑

如题目所示
哦想做一个 文件目录的 结构 复制的 批处理
现 出现 一个 小问题

就是 只有一级目录的 结构 有点 问题
所以 想 如何  用批处理获取
目录路径 最后一个\ 符号后面的变量

举个例子 c:\a
              c:\aa\a
              c:\aa d\a
              c:\aa\aa\aaa c
想获取 就是 最后一个 \ 符号后面的变量 红字索要的变量 怎么写啊

望知道 大大 赐教。。。

评分

参与人数 1PB +2 收起 理由
CrLf + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2011-10-7 20:48:01 | 显示全部楼层
  1. for %%a in ("c:\aa\bb\cc") do echo %%~nxa
复制代码
要注意的是,这会去除 cc 后的空格,还有别的方法,但是只对付文件的话,这是最优方案
 楼主| 发表于 2011-10-7 21:07:39 | 显示全部楼层
回复 2# CrLf
你这个 写法 我是 写过 的
发现对于 一级目录的 不行的  就如 我提取 c:\a  我要 提取 这个a 就不行了
老大我用来就是  针对 目录 提取的用的
发表于 2011-10-7 21:16:29 | 显示全部楼层
文件夹不是一样的吗?你给出的顶楼样本用这种方法是没有问题的,至于3楼给出的路径好像是用全角冒号

评分

参与人数 1技术 +1 收起 理由
kswdiy + 1 很热心 谢谢诶!

查看全部评分

 楼主| 发表于 2011-10-7 21:30:48 | 显示全部楼层
回老大 的话 看了一下  原来是 是 这里面 出错了
for %%a in ("c:\aa\bb\cc") do echo %%~nxa

中 的 ()里面的变量 要  加 “”  符号
不让 针对   一级目录的  就是 在根目录的 文件夹 就无法 执行 程序了

谢谢诶 以后要 注意 双引号的 用法 呵呵 谢谢诶
发表于 2011-10-8 00:57:50 | 显示全部楼层
不丢弃最后的空格
  1. @echo off
  2. set i=a\b\d\dkk  
  3. set i="%i:\=" "%"
  4. for %%a in (%i%) do set "str=%%~a"
  5. echo,【%str%】
  6. pause



复制代码

评分

参与人数 1PB +5 收起 理由
CrLf + 5 乐于助人

查看全部评分

 楼主| 发表于 2011-10-8 09:49:54 | 显示全部楼层
回复 6# FOR

谢谢你 代码 收藏中 并改进中。。。
发表于 2011-11-18 13:24:58 | 显示全部楼层
本帖最后由 CrLf 于 2011-11-18 13:26 编辑

回复 6# FOR


    有更简单的办法...养生秘诀:缺啥补啥
  1. @echo off
  2. set "i=a\b\d\dkk  "
  3. for %%a in ("%i%.#") do echo 【%%~na】
  4. pause
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 06:55 , Processed in 0.020338 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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