Как получить путь к пакету 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