在批处理文件中获取两个级别的路径

时间:2014-09-26 08:39:44

标签: windows batch-file cmd

我的要求是从执行批处理文件的位置获取两个级别的路径: 假设我的批处理文件位于: D:\ testfolder \ system \ tools \ configuration task \ conf.bat

我在批处理文件中使用以下代码:

SET BATCH_FILE_DIR=%~dp0
echo %BATCH_FILE_DIR%
SET PATH_TWO_LEVELS_UP=?????

我尝试在网上搜索,但找不到任何有用的东西。 对我来说,有些东西应该取代?????,     PATH_TWO_LEVELS_UP到D:\ testfolder \ system \

此外,它应该适用于UNC路径。假设在以下位置可用相同的批处理文件: \\ pc-dummy \ testfolder \ system \ tools \ configuration task \ conf.bat

如果在资源管理器中打开上述位置并双击批处理文件, 变量PATH_TWO_LEVELS_UP应设置为\\ pc-dummy \ testfolder \ system \

应该代替?????代替本地驱动器以及UNC路径

1 个答案:

答案 0 :(得分:5)

for %%a in ("%~dp0..\..") do set "PATH_TWO_LEVELS_UP=%%~fa"
echo %PATH_TWO_LEVELS_UP%

使用for命令获取对所需文件夹的引用,并将变量设置为引用文件夹的完整路径