Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 具有相对路径和关闭命令提示的批处理文件_Batch File - Fatal编程技术网

Batch file 具有相对路径和关闭命令提示的批处理文件

Batch file 具有相对路径和关闭命令提示的批处理文件,batch-file,Batch File,我尝试以下代码: start /d "D:\test\CONTOH\DATA\QGIS2\bin\" qgis.bat 基于: 但是,我想成为相对路径,类似这样: start /d %~dp0\DATA\QGIS2\bin\qgis.bat 基于: 但是,什么也没有发生。那么,有人能告诉我有什么问题吗?打开命令提示符窗口并运行start/?。这将输出命令START的帮助,在使用该命令时应阅读该帮助,以了解其选项 在命令提示符窗口调用中运行/?并阅读输出帮助页以了解dp0。批处理文件参数0

我尝试以下代码:

start /d "D:\test\CONTOH\DATA\QGIS2\bin\" qgis.bat
基于:

但是,我想成为相对路径,类似这样:

start /d %~dp0\DATA\QGIS2\bin\qgis.bat
基于:


但是,什么也没有发生。那么,有人能告诉我有什么问题吗?

打开命令提示符窗口并运行start/?。这将输出命令START的帮助,在使用该命令时应阅读该帮助,以了解其选项

在命令提示符窗口调用中运行/?并阅读输出帮助页以了解dp0。批处理文件参数0的驱动器和路径始终以反斜杠结束。因此,在将其与另一个字符串连接时,不要添加额外的反斜杠

第一个双引号字符串由START解释为显示在新窗口标题栏中的新控制台窗口的标题。因此,最好总是指定一个标题字符串,它也可以是空字符串,就像启动一个根本没有打开控制台窗口的GUI应用程序一样

start "Running QGIS2" /D "%~dp0DATA\QGIS2\bin" qgis.bat
也可以在批处理文件中使用此命令行:

start "Running QGIS2" /D"%~dp0DATA\QGIS2\bin" qgis.bat
在这里,使用/D%~dp0DATA\QGIS2\bin定义的目录中的start是100%正确的,根据命令start作为一个参数字符串指定

但Windows命令解释器也接受第一个变量,该变量只有选项/D,没有任何文件夹路径,下一个参数字符串%dp0DATA\QGIS2\bin在一个分隔空间后是目录中开始的文件夹路径


与第二个变量相比,第一个变量仅以/D作为一个参数字符串、%dp0DATA\QGIS2\bin作为一个参数字符串更容易阅读。

如果比较命令,可以看到第一个命令在开始后有三个参数,而第二个命令则有三个参数仅has twostart将双引号中的第一个参数作为窗口标题。插入一个空的虚拟对以避免这种情况。