我有一个位于:C:\A\B\test.bat
的脚本。
在脚本中,我通过命令获取脚本的父目录:parent_dir=~dp0
=> 我得到了:C:\A\B
那么如何获取父级目录的父级目录:C:\A
并将其设置为一个变量?
我有一个位于:C:\A\B\test.bat
的脚本。
在脚本中,我通过命令获取脚本的父目录:parent_dir=~dp0
=> 我得到了:C:\A\B
那么如何获取父级目录的父级目录:C:\A
并将其设置为一个变量?
FOR %%a IN ("%parent:~0,-1%") DO SET grandparent=%%~dpa
回应评论的完整代码
@ECHO OFF
setlocal
SET parent=%~dp0
ECHO parent=%parent%
FOR %%a IN ("%parent:~0,-1%") DO SET grandparent=%%~dpa
ECHO grandparent=%grandparent%
尝试一下这个:
for %%B in (%~dp0\.) do set c=%%~dpB
当应用Alireza的答案时,这个可以工作。
@echo off
SET CurrentDirectory=%~dp0
echo %CurrentDirectory%
for %%B in (%CurrentDirectory%.) do set parent=%%~dpB
echo %parent%
for %%B in (%parent%.) do set grandparent=%%~dpB
echo %grandparent%
pause
echo thanks
@echo off
SET CurrentDirectory=%~dp0
echo %CurrentDirectory%
for %%B in (%CurrentDirectory%.) do set parent=%%~dpB
echo %parent%
for %%B in (%parent%.) do set grandparent=%%~dpB
echo %grandparent%
start "" msiexec /a %parent%AcroPro.msi
for %%B in (%~dp0\..) do set c=%%~dpB
- 除此之外,这是最好的答案。而且它正确回答了问题(从问题的示例来看,他们想要父级,而不是祖父级(只是措辞不当))。 - Stephan