从批处理脚本中的绝对路径中提取目录/子目录名称

时间:2013-07-01 11:43:08

标签: batch-file

我想走完file的完整路径并列出最后两个parent directories

例如:

\\publicshare\products\apps\123.456\OSfile

我想在我的批处理脚本中提取123.456OSfile

1 个答案:

答案 0 :(得分:4)

SET MYPATH=\publicshare\products\apps\123.456\OSfile

for %%i in ("%MYPATH%") do SET FIRST=%%~nxi&SET MYPATH=%%~dpi
SET MYPATH=%MYPATH:~0,-1%
for %%i in ("%MYPATH%") do SET SECOND=%%~nxi

echo %FIRST%    -- echoes OSFile
echo %SECOND%   -- echoes 123.456

第一个FOR语句提取文件名+扩展名(%% ~nxi),然后将MYPATH设置为路径的其余部分(驱动器号+路径)。

“SET MYPATH =%MYPATH:~0,-1%”删除尾随反斜杠。

第二个FOR语句从MYPATH中提取最后一个元素,现在是目录。