获取父目录在Windows 8批处理文件中不起作用

时间:2014-09-26 05:55:08

标签: windows batch-file windows-8

我的文件夹结构为

c:\name\myname

我写了一个批处理文件

test.bat的

@echo off  
echo %CD%  
echo %CD%\..  
set k=%CD%  
set c=%k%\..  
echo %k%  
echo %c%  
pause

输出

c:\name\myname  
c:\name\myname\\..  
c:\name\myname  
c:\name\myname\\..

预期输出

c:\name\myname  
c:\name  
c:\name\myname  
c:\name

我已经安装了Windows 8操作系统。我想从当前目录获取父目录。可能我不知道获取父目录的正确语法。

1 个答案:

答案 0 :(得分:3)

有两种方法可以获取对文件/文件夹的引用:批处理文件和for命令的参数。第二个选项是我们将在这里使用的。由于目前尚不清楚您需要什么样的父母,让我们看看如何获​​得每个

1 - 获取当前活动目录的父目录

for %%a in (..) do echo %%~fa

获取对for可替换参数%%a中当前活动文件夹的父级的引用,一旦我们获得了引用,请获取它的完整路径

2 - 获取包含批处理文件的文件夹的父级

for %%a in ("%~dp0.") do echo %%~dpa
同样的想法。 %0是对当前批处理文件的引用,因此%~dp0是存储批处理文件的驱动器和路径。此值以反斜杠结尾,因此,要获取对文件夹的引用,请添加aditional dot。在%%a中有对包含批处理文件的文件夹的引用后,%%~dpa将返回存储%%a中引用的元素的驱动器和路径。由于%%a是包含批处理文件的文件夹,因此%%~dpa是父文件夹,该文件夹存储了批处理文件夹。