我在 E:\dir0\dir1 中有一个批处理文件,它调用该文件夹中的 exe0.exe。我需要 exe 的第一个参数是 E:\dir0\dir2\dir3\script.js。
问题是 dir0 的名称(以及它所具有的任何父目录)以及驱动器号可能会发生变化。我已了解到:
exe0.exe %~d0\dir0\dir2\dir3\script.js %*
现在我只需要以某种方式使其成为相对路径(使用 \..?)
答案1
为了清楚起见,听起来你正在描述一个看起来像这样的文件夹结构:
{unknown}\dir0\dir1\batfile.bat
{unknown}\dir0\dir1\exe0.exe
{unknown}\dir0\dir2\dir3\script.js
一个非常简单的方法是避免使用驱动器号,而是使用相对路径,如下所示:
exe0.exe ..\dir2\dir3\script.js
但是,如果您的 exe 需要获取完整的驱动器和路径作为其参数,那么您将需要更多。类似下面的内容将起作用:
pushd ..\dir2\dir3\script.js
set "ScriptDir=%cd%"
popd
exe0.exe "%ScriptDir%"