wiem to %0
zawiera pełną ścieżkę skryptu wsadowego, npc:\path\to\my\file\abc.bat
Byłbym path
równyc:\path\to\my\file
Jak mogłem to osiągnąć?
windows
batch-file
Misza Moroszko
źródło
źródło
Odpowiedzi:
%~dp0
będzie katalog. Oto dokumentacja wszystkich modyfikatorów ścieżki . Zabawne rzeczy :-)Aby usunąć końcowy ukośnik odwrotny, możesz użyć
:n,m
składni podciągów:Niestety nie wierzę, że istnieje sposób na połączenie
%0
składni ze:~n,m
składnią.źródło
%~0\..
- wiedziałem, że musi być lepszy sposób! Ponadto prawdopodobnie będziesz chciał zawrzeć%~dp0
w cudzysłowie (""
) w przypadku spacji w nazwie katalogu itp.%~dp0
zawiera `` na końcu. Czy masz pomysł, jak go usunąć?SET msg=hello world
działa dobrze). Jednak używając% mypath% w innym miejscu, należy zachować ostrożność, używając go w cudzysłowach, chociaż nie są one potrzebne docd
żadnego z nich.Możesz użyć następującego skryptu, aby uzyskać ścieżkę bez ciągnięcia „\”
źródło
%~dp0
może być ścieżką względną. Aby przekonwertować go na pełną ścieżkę, spróbuj czegoś takiego:źródło
%~dp0
bezpośrednio?%~dp0
może być względne, co może, ale nie musi być problemem, w zależności od przypadku użycia%~dp0
nie może zawierać ścieżki względnej,d
oznacza dysk ip
ścieżkę, w jaki sposób dysk może być względny?%~dp0
że będzie to ścieżka bezwzględna, nawet jeśli skrypt został uruchomiony jako ścieżka względna. Dzięki komentarzowi jeba ta odpowiedź mnie nie zmyliła. Dlaczego ludzie po prostu coś wymyślają i zaczynają szerzyć swoją dziką wyobraźnię na innych. Mam tego kolegę, który to robi, ale winiłem jego (młody) wiek. Chciałbym, żeby moje głosowanie w głosowaniu się liczyło.Możesz użyć
%~dp0
, d oznacza tylko dysk, p oznacza tylko ścieżkę, 0 to argument pełnej nazwy pliku wsadowego.Na przykład, jeśli ścieżka do pliku to C: \ Users \ Oliver \ Desktop \ example.bat, wówczas argument byłby równy C: \ Users \ Oliver \ Desktop \, również możesz użyć polecenia
set cpath=%~dp0 && set cpath=%cpath:~0,-1%
i użyć%cpath%
zmiennej, aby usunąć końcowy ukośnik.źródło
%cd%
poda ścieżkę do katalogu, z którego skrypt jest uruchomiony.Po prostu biegnij:
źródło
%CD%
to bieżący folder roboczy, a nie folder, w którym przechowywany jest plik wsadowy. Mogą być w tej samej lokalizacji, ale często nie są.To byłaby
%CD%
zmienna.%CD%
zwraca bieżący katalog, w którym znajduje się skrypt wsadowy.źródło
CD C:\Temp <CR> ECHO %CD%
(<CR>
nowa linia ...)Pracuję na komputerze z systemem Windows 7 i wykorzystałem poniższe linie, aby uzyskać bezwzględną ścieżkę folderu dla mojego skryptu bash.
Dotarłem do tego rozwiązania po przejrzeniu http://www.linuxjournal.com/content/bash-parameter-expansion .
źródło