在Windows(XP及更高版本)的批处理文件需要知道它位于目录名的父文件夹的名称,只有文件夹名称,而不是整个路径,而不是批处理文件自己命名。获取当前正在执行的批处理脚本
所以存储在文件C:\ TEMP \ ABC \ script.cmd应该得到一个变量名 “ABC”。
如何做到这一点?
像%~p0
这样的常用参数扩展只能提取整个路径(\ temp \ abc \),它们只能在真实参数(%0,%1,%2 ...)上工作而不能在其他变量上工作,所以它们不能堆叠或组合。所以他们对于这项任务太有限了。 for
命令只能处理从开始处定义位置的标记,而不是“最后”或倒数第二个标记。
用于执行和可移植性的简单性,它必须是一个批处理文件(.CMD),不PowerShell的。
重复http://stackoverflow.com/questions/3848597/bat-current-folder-name – 2013-02-18 10:55:24
@Kayasax - 有一个更好的方式来获得父文件夹。 – dbenham 2013-02-18 12:16:59