Board logo

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

作者: kswdiy    时间: 2011-10-7 20:43     标题: [已解决]批处理如何获取目录路径 \ 符号最后的变量?

本帖最后由 kswdiy 于 2011-11-18 11:22 编辑

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

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

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

望知道 大大 赐教。。。
作者: CrLf    时间: 2011-10-7 20:48

  1. for %%a in ("c:\aa\bb\cc") do echo %%~nxa
复制代码
要注意的是,这会去除 cc 后的空格,还有别的方法,但是只对付文件的话,这是最优方案
作者: kswdiy    时间: 2011-10-7 21:07

回复 2# CrLf
你这个 写法 我是 写过 的
发现对于 一级目录的 不行的  就如 我提取 c:\a  我要 提取 这个a 就不行了
老大我用来就是  针对 目录 提取的用的
作者: CrLf    时间: 2011-10-7 21:16

文件夹不是一样的吗?你给出的顶楼样本用这种方法是没有问题的,至于3楼给出的路径好像是用全角冒号
作者: kswdiy    时间: 2011-10-7 21:30

回老大 的话 看了一下  原来是 是 这里面 出错了
for %%a in ("c:\aa\bb\cc") do echo %%~nxa

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

谢谢诶 以后要 注意 双引号的 用法 呵呵 谢谢诶
作者: FOR    时间: 2011-10-8 00:57

不丢弃最后的空格
  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
复制代码

作者: kswdiy    时间: 2011-10-8 09:49

回复 6# FOR

谢谢你 代码 收藏中 并改进中。。。
作者: CrLf    时间: 2011-11-18 13:24

本帖最后由 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
复制代码





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