如何在目录路径中多次返回?

时间:2016-07-19 07:58:14

标签: windows batch-file

我正在尝试为多个文件夹创建完整路径。基本上有一个被调用的批处理脚本,这些是将在该脚本中使用的命令。 我这样做了:

ECHO OFF
SET currentDirectory=%~dp0
echo %currentDirectory:~0,-15%

SET ROOT = %currentDirectory:~0,-15%
SET MNIST_DIR = %currentDirectory:~0,-1%
SET DATA = %ROOT%/data/mnist
SET BUILD= %ROOT%/Build/x64/Release
SET BACKEND=lmdb

%~dp0的输出为N:\caffe-master\examples\mnist
所以%currentDirectory:~0,-15%我打算访问N:\caffe-master\。 但是,我正在做的事情似乎是错误的,并且以下命令无法执行!

"%BUILD%/convert_mnist_data.exe" %DATA%/t10k-images-idx3-ubyte %DATA%/t10k-labels-idx1-ubyte %EXAMPLES%\mnist_test_%BACKEND% --backend=%BACKEND%

我该如何解决这个问题。 请注意,我也试过CD / D也无济于事。所以这就是我提出来的。

2 个答案:

答案 0 :(得分:3)

这个怎么样:

@echo off
SET currentDirectory=%~dp0
PUSHD %CD%
CD ..
CD ..
SET MNIST_DIR=%CD%
POPD
ECHO %MNIST_DIR%
PAUSE

这会生成输出N:\caffe-master\

编辑:通过在脚本末尾使用PUSHD %CD%POPD,我们可以确保始终在原始目录中结束。

答案 1 :(得分:1)

..是文件夹的父级(.是文件夹本身)。因此c:\windows\system32\drivers\..\..等于c:\windows(与c:\windows\system32\drivers\..\..\.\.\.\.\.一样)。

阿苏

等号两侧没有空格。您正在设置%root %