2016-01-22 134 views
2

嗨我在批处理文件的变量中有完整的文件路径。如何获得其一级和二级父目录路径?获取批处理脚本中特定路径的父目录

set path=C:\SecondParent\FirstParent\testfile.ini 
+0

%〜dppath%会工作吗?我知道它适用于编号参数(%〜dp1)。它的第一个父目录是 –

回答

3

为此不使用变量PATH。 %PATH%是命令提示符使用的内置变量。

@echo off 
set "_path=C:\SecondParent\FirstParent\testfile.ini" 
for %%a in ("%_path%") do set "p_dir=%%~dpa" 
echo %p_dir% 
for %%a in (%p_dir:~0,-1%) do set "p2_dir=%%~dpa" 
echo %p2_dir% 
+0

。但我也需要它授予父目录。如何得到这个? – selvakumar

+0

@SelvakumarGurusamy - 检查我的编辑。 – npocmaka

+1

您好都打印相同的值。 – selvakumar

2

作为npocmaka正确地表明,挑从%PATH%(或any of these other environment variables)一个不同的变量。其次,请确保您的脚本使用setlocal以避免使用此脚本中的变量使控制台会话的环境变得枯燥。第三,只需为要导航的每个祖先添加一个\..即可。无需打扰子字符串操作。

@echo off 
setlocal 

set "dir=C:\SecondParent\FirstParent\testfile.ini" 
for %%I in ("%dir%\..\..") do set "grandparent=%%~fI" 
echo %grandparent% 
+0

是的,我明白了。感谢您的宝贵信息。 – selvakumar