Załóżmy, że używam pliku wsadowego i chcę, aby był on skierowany do folderu znajdującego się w tym samym katalogu partii. Jeśli się nie mylę, napiszesz "% ~ dp0 \ whateverfoldername". Ale czy nie można zrobić tego samego, pisząc ". \ Whateverfoldername"? Jeśli tak, jaka jest różnica i/lub przewaga odpowiedniego polecenia?Różnica między "% ~ dp0" i ". "?
Odpowiedz
pushd %~dp0
jest często używany do zmiany katalogu pierwotnego, z którego partia została uruchomiona. Jest to bardzo przydatne w nowszych systemach operacyjnych, gdy użytkownik może "Uruchom jako administrator", który zmienia aktualny katalog dla ciebie! Spróbuj tego kiedyś. Wystarczy zrobić prosty bat
@echo off
echo.CD=%CD%
pushd %~dp0
echo.CD=%CD%
pause
Teraz uruchom go. Teraz uruchom go ponownie jako Administrator na Vista, Win 7, Win 8, 2008 Server lub 2012 Server. Zobacz, co się dzieje?
Ok to bardzo pomaga, widzę, dlaczego potrzebne jest dp0. Ale jaka jest różnica między pushd i cd? – user2259606
Odpowiadając na siebie: Różnica między urządzeniami pushd i cd polega na tym, że pushd przechowuje poprzedni folder/ścieżkę do użycia przez polecenie POPD. POPD Zmienia katalog z powrotem na ścieżkę/folder ostatnio zapisany za pomocą polecenia PUSHD. Bum. Kocham was, dzięki! – user2259606
Jeśli chcesz przejść z katalogu głównego na inny dysk, PUSHD działa bezproblemowo, podczas gdy z CD musisz użyć CD z parametrem/d lub CD z połączeniem, a następnie wpisać nazwę napędu. –
".\
zlokalizuje względem katalogu CURRENT
, stąd jeśli zostały zmienione katalogi z poleceniem CD
wtedy będzie patrząc na THAT
katalogu, a nie w katalogu, w którym znajduje się partia.
W rzeczywistości normalne jest utworzenie osobnego katalogu, często nazywanego \batch
lub może \belfry
, aby zachować pliki wsadowe. Pod warunkiem, że dany ,bat
jest zlokalizowany na path
, zostanie zlokalizowany. %dp0
spowoduje wyświetlenie lokalizacji .bat
.
Również katalog roboczy może różnić się od katalogu nadrzędnego skryptu w zależności od tego, jak skrypt został uruchomiony. –
Może możesz. Ale to się nie uda, jeśli obecny katalog nie jest tam, gdzie masz taką nadzieję. –
Co wynikałoby z działania jako administrator ... w ten sposób robisz to, o czym mówi RGuggisberg poniżej ... otrzymuję teraz lol – user2259606