2014-09-26 92 views
0

我有一个文件夹结构获取父目录在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 

我已经安装的窗户8 OS。我想从当前目录中获取父目录。可能是我不知道获取父目录的正确语法。

+1

相似http://stackoverflow.com/questions/16623780/how-to-get-windows-batchs-parent-folder – elimad 2014-09-26 06:18:04

+0

假设我有像c:\ user \ myname \ check \ test这样的结构,我需要一个从这里作为c:\ user \ myname的路径。我怎么才能得到它? – Kumar 2014-09-26 06:52:58

回答

3

有两种方法可以获取文件/文件夹的引用:批处理文件的参数和for命令。第二个选项就是我们在这里使用的。因为它是不明确的,你需要什么样的父母,让我们来看看如何获​​得每个

1 - 获取父当前Active Directory

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

的进去的for当前活动文件夹的父参考替换参数%%a,一旦我们有参考,得到了完整路径

2 - 获取文件夹的控股母公司的批处理文件

for %%a in ("%~dp0.") do echo %%~dpa 

同样的想法。 %0是对当前批处理文件的引用,因此%~dp0是存储批处理文件的驱动器和路径。该值以反斜杠结束,因此,为了获得对该文件夹的引用,添加了一个附加点。一旦我们在%%a中引用了保存批处理文件的文件夹,%%~dpa将返回存储%%a中引用的元素的驱动器和路径。由于%%a是保存批处理文件的文件夹,%%~dpa是父文件夹,其中存储了批处理文件夹的文件夹。

+0

假设我有一个类似c:\ user \ myname \ check \ test的结构,我需要一个从c:\ user \ myname的路径。我怎么才能得到它? – Kumar 2014-09-26 06:43:01

+1

@Kumar,'for %% a in(“c:\ user \ myname \ check \ test \ .. \ ..”)do echo %%〜fa' – 2014-09-26 07:12:12

+1

@kumar,或以相对方式'for%a在(.. \ ..)do echo%〜fa' – 2014-09-26 07:13:56

相关问题