Board logo

标题: [文本处理] [已解决]批处理如何获取当前目录的名称? [打印本页]

作者: chishingchan    时间: 2023-4-16 19:19     标题: [已解决]批处理如何获取当前目录的名称?

例如:
在 C:\A\B\C 目录下运行 C:\A\B\C\DirName.bat 获取当前目录的名称,结果:C
在 C:\A\BC\DEF\GHIJ 目录下运行 C:\A\BC\DEF\GHIJ\DirName.bat 获取目录的名称,结果:GHIJ
谢谢!
作者: czjt1234    时间: 2023-4-16 19:33

把 %cd% 作为参数传递给 C:\A\B\C\DirName.bat
作者: chishingchan    时间: 2023-4-16 19:42

回复 2# czjt1234


    可是 %cd% 是个完整的路径!
为什么 1# 有两个例子?因为需要这个批处理能通用。
作者: czjt1234    时间: 2023-4-16 20:11

在 C:\A\B\C\DirName.bat 中  %~n1 就是文件夹名

echo %~n1
作者: chishingchan    时间: 2023-4-16 20:56

本帖最后由 chishingchan 于 2023-4-16 21:00 编辑

回复 4# czjt1234



    谢谢!换了个思路,算解决问题了!
但是还是获取目录名称更好用。未结贴,希望得到帮助,谢谢!

将文件拖入批处理:
  1. @echo off
  2. cd /d "%~dp0"
  3. echo EXPAND.EXE %~n1.cab -F:*.* .
  4. pause
复制代码

作者: buyiyang    时间: 2023-4-16 21:03

  1. set "p=%~dp0"
  2. for %%i in ("%p:~0,-1%") do echo,%%~ni
复制代码
  1. for %%i in ("%cd%") do echo,%%~ni
复制代码

作者: 77七    时间: 2023-4-16 21:26

  1. @echo off
  2. rem 由此更改 http://bbs.bathome.net/redirect.php?goto=findpost&ptid=42293&pid=192838
  3. for %%I in (.\.) do echo=%%~nI
  4. pause
复制代码

作者: buyiyang    时间: 2023-4-16 21:58

回复 7# 77七


    .也可以扩展?那这样也行
  1. for %%I in (.) do echo,%%~nI
复制代码

作者: 77七    时间: 2023-4-16 22:12

本帖最后由 77七 于 2023-4-16 22:16 编辑

回复 8# buyiyang

我是乱改的那个代码。
   确实可行,真奇妙啊...学习了!
作者: Batcher    时间: 2023-4-17 10:31

回复 8# buyiyang


用%%~nxi比较安全
  1. @echo off
  2. for %%i in (.) do (
  3.     echo,%%~nxi
  4. )
  5. pause
复制代码
  1. @echo off
  2. for %%i in ("%~f0\..") do (
  3.     echo,%%~nxi
  4. )
  5. pause
复制代码





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