Chcę utworzyć kilka plików wsadowych w celu zautomatyzowania programu.
Moje pytanie brzmi: kiedy tworzę plik wsadowy, jaki jest bieżący katalog? Czy to katalog, w którym znajduje się plik, czy to ten sam katalog, który pojawia się w wierszu polecenia, czy coś innego?
batch-file
directory
Aaron de Windt
źródło
źródło
%0
mógłby podać nazwę bieżącego podprogramie, ale%~dp0
będzie zawsze podać pełną ścieżkę do wykonującego pliku wsadowego..cmd
pliku prawym przyciskiem myszy i uruchomieniu jako administrator,%cd%
podajeC:\WINDOWS\system32
i%~dp0
podaje katalog plików wsadowych z końcowym ukośnikiem.To zwykle jest katalog, z którego uruchamiany jest plik wsadowy, ale jeśli uruchomić plik wsadowy ze skrótu, inny katalog począwszy może być podana. Ponadto, gdy jesteś w cmd, a bieżącym katalogiem jest
c:\dir3
, nadal możesz uruchomić plik wsadowy,c:\dir1\dir2\batch.bat
w którym to przypadku będzie to katalog bieżącyc:\dir3
.źródło
W pliku wsadowym% cd% jest najczęściej używanym poleceniem dla bieżącego katalogu, chociaż możesz ustawić własną zmienną:
Powiedzmy, że chcesz otworzyć Myprog.exe. Jeśli byłby w tym samym folderze, użyłbyś polecenia:
To otworzy Myprog z bieżącego folderu.
Inną opcją jest utworzenie katalogu w C: o nazwie AutomatePrograms. Następnie przenosisz pliki do tego folderu, a następnie możesz je otworzyć za pomocą następującego polecenia:
źródło
%cd%
jest zmienna, więc uruchomienie pliku wsadowego z Eksploratora Windows jako administrator da,C:\WINDOWS\system32
co prawie na pewno nie jest tym, czego chcesz.%~dp0
jest bardziej spójny.Załóżmy, że otwierasz plik w bieżącym katalogu. Poleceniem byłoby:
Mam nadzieję, że odpowiedziałem na twoje pytanie.
źródło
Jest to katalog, z którego uruchomiono polecenie wykonania pliku wsadowego.
Jak wspomniano w powyższych odpowiedziach, możesz dodać poniższe polecenie do skryptu, aby zweryfikować:
źródło
Jest to katalog, w którym uruchamiasz plik wsadowy. Np. Jeśli twoja partia jest w środku,
c:\dir1\dir2
a ty to zrobiszcd c:\dir3
, uruchom ją, bieżącym katalogiem będziec:\dir3
.źródło
Tylko moje 2 centy. Następujące polecenie nie powiedzie się, jeśli zostanie wywołane z pliku wsadowego (Windows 7) umieszczonego na pendrive:
Ale to działa:
źródło
%~dp0