批处理脚本:如何在没有完整路径的情况下获取父目录名称?

时间:2012-01-15 16:43:09

标签: variables batch-file directory parent

我正在处理一个处理文件夹的脚本,其中总有一个文件我需要重命名。新名称应该是父目录名称。如何在批处理文件中获取此信息? dir的完整路径是已知的。

3 个答案:

答案 0 :(得分:5)

目前还不清楚脚本应该如何熟悉相关路径,但以下示例至少应该让您了解如何继续:

FOR %%D IN ("%CD%") DO SET "DirName=%%~nxD"
ECHO %DirName%

此脚本从CD变量获取路径,并仅从其中提取名称DirName

答案 1 :(得分:-1)

您可以使用basename命令:

FULLPATH=/the/full/path/is/known
JUSTTHENAME=$(basename "$FULLPATH")

答案 2 :(得分:-1)

您可以使用内置bash技巧:

FULLPATH=/the/full/path/is/known
JUSTTHENAME=${FULLPATH##*/}

说明:

  • 首先#表示'从开头'删除模式
  • second #表示'删除较长的模式'
  • */是模式

使用内置bash避免调用外部命令(即basename)因此这会优化脚本。但是脚本的可移植性较差。