Вот моя собственная папка с программой на моем USB-накопителе:
Program\
run.bat
bin\
config.ini
Iris.exe
library.dll
etc.
Я хотел бы использовать run.bat
для начала Iris.exe
Я не могу использовать это: F:/Program/bin/Iris.exe
как ярлык, потому что иногда он не подключается как диск F:
( например, E:
или G:
)
Что мне нужно написать в bat-файле, чтобы он работал независимо от буквы диска?
Я пробовал это в файле BAT:
"\bin\Iris.exe"
Но это не работает.
batch-file
cmd
relative-path
drive
user2083037
источник
источник
C:\myDir\\bin\Iris.exe
(обратите внимание на двойную обратную косую черту). Это все еще работает, но если убрать обратную косую черту до того, как bin кажется «чище»? ->%~dp0bin\Iris.exe
.%~dp0
в конце всегда будет обратная косая черта, оба оператора будут работать. В противном случае вариант с дополнительной обратной косой чертой будет более безопасным."%~dp0\bin\Iris.exe"
) , поскольку путь был пробел в нем :) Просто , чтобы быть действительно уверены , что он работает на каждом компьютере.SET "scriptdir=%~dp0"
на следующей строке есть обратная косая чертаIF NOT "%scriptdir:~-1%"=="\" SET "scriptdir=%scriptdir%\"
. Я видел случаи, когда двойная обратная косая черта в середине пути нарушала программное обеспечение.Вы можете получить все необходимые свойства файла, используя приведенный ниже код:
источник
Я обнаружил, что
%CD%
это путь, из которого был вызван сценарий, а не путь к сценарию, однако%~dp0
он дает путь к самому сценарию.источник
Вы должны иметь возможность использовать текущий каталог
источник
Program
будет, это произойдет, если вы дважды щелкните значокrun.bat
в проводнике.%CD%
это текущий каталог%~dp0
- это каталог самого командного файлалибо
bin\Iris.exe
(без ведущей косой черты - потому что это означает начало прямо с корня),либо
\Program\bin\Iris.exe
(полный путь)источник
\Program
- это не так? Вы можете показать это с помощью простойcd
команды в строке, прежде чем пытаться запустить .exerun.bat
.