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

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

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

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

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

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

望知道 大大 赐教。。。
1

评分人数

    • CrLf: 感谢给帖子标题标注[已解决]字样PB + 2

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

TOP

回复 2# CrLf
你这个 写法 我是 写过 的
发现对于 一级目录的 不行的  就如 我提取 c:\a  我要 提取 这个a 就不行了
老大我用来就是  针对 目录 提取的用的

TOP

文件夹不是一样的吗?你给出的顶楼样本用这种方法是没有问题的,至于3楼给出的路径好像是用全角冒号
1

评分人数

    • kswdiy: 很热心 谢谢诶!技术 + 1

TOP

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

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

谢谢诶 以后要 注意 双引号的 用法 呵呵 谢谢诶

TOP

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

评分人数

    • CrLf: 乐于助人PB + 5

TOP

回复 6# FOR

谢谢你 代码 收藏中 并改进中。。。

TOP

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

TOP

返回列表