Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.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_Filepath_Usb Drive - Fatal编程技术网

Batch file 批处理脚本中的相对路径

Batch file 批处理脚本中的相对路径,batch-file,filepath,usb-drive,Batch File,Filepath,Usb Drive,我创建了一个批处理文件,可以同时启动多个程序。 此后,我使用xampp将整个程序加载到USB上,并尝试使该批处理文件更具动态性,因为驱动器号可能会根据USB所在的计算机而发生变化 我找到了一些类似问题的答案,这些问题都指向%dp0是创建我想要运行的程序的相对路径的正确答案。但是我不能让它工作。我试过几种组合,它们都说找不到批处理文件所指的程序。 以下是我对批处理文件中该部分的内容: :: Start programs cd "%~dp0/ic/" start xampp_start.exe cd

我创建了一个批处理文件,可以同时启动多个程序。 此后,我使用xampp将整个程序加载到USB上,并尝试使该批处理文件更具动态性,因为驱动器号可能会根据USB所在的计算机而发生变化

我找到了一些类似问题的答案,这些问题都指向%dp0是创建我想要运行的程序的相对路径的正确答案。但是我不能让它工作。我试过几种组合,它们都说找不到批处理文件所指的程序。 以下是我对批处理文件中该部分的内容:

:: Start programs
cd "%~dp0/ic/"
start xampp_start.exe
cd "%~dp0/ic/"
start xampp-control.exe
cd "%~dp0/ic/"
start GoogleChromePortable.exe  http://localhost:8080/wordpress/
我的文件结构是: USB/IC/launch.bat

谢谢你的帮助

谢谢您的回复。 对于那些有类似问题的人

我发现问题的部分原因在于Xampp本身,但通过这样做,我能够启动这些程序:

:: Start programs
cd "%~dp0/"
start xampp_start.exe
cd "%~dp0/"
start xampp-control.exe
cd "%~dp0/GoogleChromePortable/"
start GoogleChromePortable.exe  http://localhost:8080/wordpress/
我误解了dp0的作用,没有意识到它脱离了bat文件的目录。
再次感谢。

1。使用反斜杠(\)分隔路径的组件。2. <代码>%~dp0已包含尾随反斜杠。因此,使用
cd“%~dp0ic\”
。使用%%dp0不会创建相对路径。这是一条绝对的道路。相对路径是指向当前工作目录所在位置的路径。请去掉正斜杠。不需要它们。为什么要将CD复制到批处理文件的位置。工作目录应该已经是批处理文件的位置。您根本不需要更改目录。您可以通过两种不同的方式使用批处理文件的相对路径启动程序1:
start”““GoogleChromePortable\GoogleChromePortable.exe”
2:
start”“/D“GoogleChromePortable”“GoogleChromePortable.exe”