获取当前批处理脚本的父文件夹名称

3
在Windows(XP及更高版本)上的批处理文件需要知道它所在的目录名称,只需要文件夹名称,而不是整个路径和批处理文件名称本身。因此,存储在C:\temp\abc\script.cmd中的文件应该将名称“abc”作为变量。如何实现呢?通常的参数扩展(例如%~p0)只能提取整个路径(\temp\abc\),并且它们仅适用于实际参数(%0、%1、%2...),而不能堆叠或组合其他变量。因此,它们对于此任务过于受限。for命令只能从开始处访问定义位置的标记,而无法访问“最后”或“倒数第二”标记。为了执行简单和可移植性,必须是批处理文件(.cmd),而不是PowerShell。

1
请返回已翻译的文本:复制 https://dev59.com/9FDTa4cB1Zd3GeqPM-Jl - Loïc MICHEL
2
@Kayasax - 有一种更好的方法来获取父文件夹。 - dbenham
1个回答

9
任何时候,只要你有完整的文件路径,就可以简单地添加 \..,并使用正确的修改器与 FOR 循环来获取父文件夹的名称。
for %%A in ("%~f0\..") do set "myFolder=%%~nxA"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接