我正在尝试为多个文件夹创建完整路径。基本上有一个被调用的批处理脚本,这些是将在该脚本中使用的命令。 我这样做了:
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也无济于事。所以这就是我提出来的。
答案 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 %