Board logo

标题: [文本处理] 求助批处理截取路径中的文件夹名 [打印本页]

作者: Amigo    时间: 2023-3-31 10:32     标题: 求助批处理截取路径中的文件夹名

需求:获取路径中的末级文件夹名,如输入路径“C:\AA\BB(CC)”,预期结果为“BB(CC)”。
过程:我曾尝试用%~n1,发现当路径中包含括号时就不能获取到正确的结果。
求助:望各位大佬提供下解决方案。
作者: lancer    时间: 2023-3-31 10:37

  1. for %%i in ("%cd%") do echo %%~ni
  2. 具体用法如下
  3. for %%i in ("%cd%") do (
  4.     :: 这里可以放自己的for代码
  5. )
复制代码

作者: Batcher    时间: 2023-3-31 10:39

回复 1# Amigo
  1. @echo off
  2. set "FullFolder=C:\AA\BB(CC)"
  3. for %%i in ("%FullFolder%") do (
  4.     echo,%%~nxi
  5. )
  6. pause
复制代码

作者: Amigo    时间: 2023-3-31 10:45

本帖最后由 Amigo 于 2023-3-31 10:52 编辑

回复 2# lancer
老哥,我刚试了下,这样只能得到“AA”呀,不是末级的文件夹名。
作者: Amigo    时间: 2023-3-31 10:54

回复  Amigo
Batcher 发表于 2023-3-31 10:39


这段代码我试了下,运行闪退了。
作者: Amigo    时间: 2023-3-31 10:55

回复 3# Batcher
这段代码我试了下,闪退了。
作者: 77七    时间: 2023-3-31 13:20

回复 6# Amigo

我试了站长的代码,正常,你可以新建一个批处理文件,然后手敲代码或者全选复制,试试
作者: lancer    时间: 2023-3-31 15:02

回复 4# Amigo
  1. @echo off
  2. for %%i in ("%cd%") do (
  3.     echo,%%~ni
  4. )
  5. pause
复制代码
运行批处理时,批处理要位于BB(CC)目录下面才行。。。你是不是放在AA目录下面运行的。。
作者: Batcher    时间: 2023-3-31 17:36

回复 6# Amigo


请参考Q-04把3楼的bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA




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