如何在窗口和linux批处理文件中获取两级父目录

时间:2014-07-19 16:58:40

标签: linux windows batch-file command

如何在Windows批处理cmd和Linux文件中的特定文件的两级父目录?

例如:

  

C:\ Oracle \ Middleware \ Oracle_Home \ my \ this.bat 在窗口中

     

\ opt \ home \ this \ my \ this.sh in linux

当运行上面的批处理文件时,我想得到C:\ Oracle \ Middleware \(这个批处理文件的父目录的父目录)

我在窗口中查看了以下内容,但只能获取第一个父文件夹:

set CURRENT_DIR=%cd%
cd %~dp0\..
set PARENT_DIR=%cd%
echo %PARENT_DIR%

2 个答案:

答案 0 :(得分:0)

对于WINDOWS:

再做另一个cd..

cd %~dp0 &cd.. &cd.. &echo %cd%

你也可以试试这个:

cd %~dp0\..\..

但我不知道,如果这适用于所有Windows版本。

答案 1 :(得分:0)

对于Windows

for %%f in ("%cd%\..\..") do set "secondParentFolder=%%~ff"
echo %secondParentFolder%

使用for命令中的相对路径可以获得绝对路径

对于linux,也许这样的东西可以工作(未经测试)

secondParentFolder="$(cd ../../; pwd)"