2013-07-01 53 views
0

我想要走完整路径file并列出过去两年parent directories在批处理脚本绝对路径提取目录/子目录名

如:

\\publicshare\products\apps\123.456\OSfile 

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

+0

问题必须证明对所解决问题的最小理解。告诉我们你试图去做什么,为什么它没有工作,以及它应该如何工作。另请参见:[堆栈溢出问题清单](http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) – devnull

回答

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中提取最后一个元素,该元素现在是目录。

+0

无需修改MYPATH的值。只需使用'for %% i in(“%MYPATH%\ ..”)设置“SECOND = %%〜nxi”' – dbenham

+0

@dbenham,这就够了,皮肤上有不止一种方法。 – Joe

相关问题