我正在尝试为多个文件夹创build完整path。 基本上有一个被调用的批处理脚本,这些是在脚本中使用的命令。 我做到了这一点:
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也无济于事。 所以这就是我想出来的。
这个怎么样:
@echo off SET currentDirectory=%~dp0 PUSHD %CD% CD .. CD .. SET MNIST_DIR=%CD% POPD ECHO %MNIST_DIR% PAUSE
这将生成输出N:\caffe-master\
。
编辑:通过在脚本的末尾使用PUSHD %CD%
和POPD
我们可以确保我们将始终在原始目录中结束。
..
是一个文件夹的父(和.
是文件夹本身)。 所以c:\windows\system32\drivers\..\..
等于c:\windows
(如c:\windows\system32\drivers\..\..\.\.\.\.\.
)。
麻生太郎
等号两边没有空格。 你正在设置%root %