Как получить путь к пакету script в Windows? Я знаю, что %0 содержит полный путь к пакету script, например. c:\path\to\my\file\abc.bat Я бы path был равен c:\path\to\my\file Как я мог достичь этого? Ответ 1 %~dp0 будет каталогом. Вот некоторая документация по всем модификаторам пути. Веселый материал :-) Чтобы удалить окончательную обратную косую черту, вы можете использовать синтаксис подстроки :n,m, например: SET mypath=%~dp0 echo %mypath:~0,-1% Я не думаю, что есть способ комбинировать синтаксис %0 синтаксисом :~n,m, к сожалению. Ответ 2 %~dp0 может быть относительным путем. Чтобы преобразовать его в полный путь, попробуйте что-то вроде этого: pushd %~dp0 set script_dir=%CD% popd Ответ 3 Вы можете использовать следующий script, чтобы получить путь без завершающего "\" for %%i in ("%~dp0.") do SET "mypath=%%~fi" Ответ 4 Это будет переменная %CD%. @echo off echo %CD% %CD% возвращает текущий каталог, в котором находится пакет script. Ответ 5 Я работаю над машиной Windows 7, и я закончил использовать строки ниже, чтобы получить абсолютный путь к папке для моего bash script. Я получил это решение, посмотрев http://www.linuxjournal.com/content/bash-parameter-expansion. #Get the full aboslute filename. filename=$0 #Remove everything after \. An extra \ seems to be necessary to escape something... folder="${filename%\\*}" #Echo... echo $filename echo $folder
Ответ 1 %~dp0 будет каталогом. Вот некоторая документация по всем модификаторам пути. Веселый материал :-) Чтобы удалить окончательную обратную косую черту, вы можете использовать синтаксис подстроки :n,m, например: SET mypath=%~dp0 echo %mypath:~0,-1% Я не думаю, что есть способ комбинировать синтаксис %0 синтаксисом :~n,m, к сожалению.
Ответ 2 %~dp0 может быть относительным путем. Чтобы преобразовать его в полный путь, попробуйте что-то вроде этого: pushd %~dp0 set script_dir=%CD% popd
Ответ 3 Вы можете использовать следующий script, чтобы получить путь без завершающего "\" for %%i in ("%~dp0.") do SET "mypath=%%~fi"
Ответ 4 Это будет переменная %CD%. @echo off echo %CD% %CD% возвращает текущий каталог, в котором находится пакет script.
Ответ 5 Я работаю над машиной Windows 7, и я закончил использовать строки ниже, чтобы получить абсолютный путь к папке для моего bash script. Я получил это решение, посмотрев http://www.linuxjournal.com/content/bash-parameter-expansion. #Get the full aboslute filename. filename=$0 #Remove everything after \. An extra \ seems to be necessary to escape something... folder="${filename%\\*}" #Echo... echo $filename echo $folder