我在c:\test.bat
中有一个批处理文件。此批处理文件中的命令是:
C:
CALL test.bat
在我的test.bat里面,我有:
\Tables\batch.bat
命令行调用test.bat
就好了,但是当它到达命令\Tables\batch.bat
时它会说:
系统找不到指定的路径。
如果我将test.bat
更改为以下内容,则可以正常运行:
CD Tables
CALL batch.bat
但由于其他原因,我无法更改test.dat
。有没有办法调用test.bat
并确保我的目录是Tables
目录? Test.dat
有多个命令,因此\Sprocs\test2.bat
答案 0 :(得分:0)
\Tables\batch.bat
表示文件batch.bat
位于当前驱动器根目录的子目录Tables
中。
.\Tables\batch.bat
或仅Tables\batch.bat
表示文件batch.bat
位于当前目录的子目录Tables
中。
..\Tables\batch.bat
表示文件batch.bat
位于当前目录的父目录的子目录Tables
中。换句话说,Tables
是与当前目录并行的目录。
因此,请遵循Liturgist的建议并删除第一个\
以引用当前目录中子目录batch.bat
中的文件Tables
。
顺便说一下:
C:
将当前驱动器切换为驱动器C:
。但是这并没有定义哪个目录是驱动器C:
上的当前目录。使用以下命令将特定目录设置为驱动器C:
上的当前目录,与当前驱动器和当前目录无关。
cd /D "C:\Path\To\Directory"
如果批处理文件也在运行,并且包含批处理文件的目录应该成为当前目录使用:
cd /D "%~dp0"
或
pushd "%~dp0"
有关这两个命令的详细信息,请打开命令提示符窗口并在窗口cd /?
和pushd /?
内运行,以获取显示的这两个命令的帮助。 call /?
解释了%~dp0
(参数0的驱动器和路径 - 批处理文件)。