Folder结构是
c:\ yyyy \ 4 \ _build \ file.cmd
我尝试了执行此脚本的文件.cmd文件
SET Source=c:\CompilationStaging\{THIS}\%FolderName%
{THIS}部分中的我需要在这种情况下父目录的父级是4
感谢
答案 0 :(得分:2)
在for
循环中,%~nI
替换提取变量I
的文件或目录名称。考虑到这一点,并且知道父目录的父目录是..\..
:
for %%a in ("..\..") do ( set "target=%%~na" )
然而,在你给出的例子中," 4"是父目录。不是父母的父母。因此,在您的情况下,您使用..
代替..\..
:
C:\yyyy\4\_build>type paths.cmd
@echo off
for %%a in ("..") do ( set "target=%%~na" )
echo %target%
C:\yyyy\4\_build>paths
4
答案 1 :(得分:1)
试试这个(!parentNameOfParent!
是所需的值):
@echo off
setlocal enabledelayedexpansion
set fileP="c:\yyyy\4\_build\file.cmd"
for %%a in (%fileP%) do (
set parent=%%~dpa
cd !parent!\..
set PPPath=!cd!
for %%x in ("!PPPath!") do (
set parentNameOfParent=%%~nx
)
)
echo !parentNameOfParent!