获取命令批处理脚本中的最后两个标记

获取命令批处理脚本中的最后两个标记

我有一个带有完整路径的文件名,并且想要获取文件名和文件的父目录。如何在批处理脚本中解析它?

例如对于/f“tokens=4,5 delims=\”%%a在(“F:\mydata\WebLogs\MyServerName001\u_ex100206.log”)

在上行中,标记 4 是服务器名称,而 5 是文件名。但是这并不总是 4 和 5。那么如何在批处理脚本中获取最后两个标记?因为在我的场景中,文件名将是最后一个标记,而服务器名称将是其之前的标记。

答案1

使用 %~nxI 作为文件名,并使用此处所选答案中的代码stackoverflow 帖子对于父文件夹。

答案2

Helvick 指出的帖子太夸张了。下面是获取父目录(或父目录的父目录等)的简单方法:

for /D %%I in ("F:\mydata\WebLogs\MyServerName001\u_ex100206.log") do (
   echo filename=[%%~nxI]
)
for /D %%I in ("F:\mydata\WebLogs\MyServerName001\u_ex100206.log\..") do (
   echo parent dir=[%%~nxI]
)
for /D %%I in ("F:\mydata\WebLogs\MyServerName001\u_ex100206.log\..\..") do (
   echo parent's parent dir=[%%~nxI]
)

...等等。该文件不需要存在。

相关内容