Mam bat
plik w systemie Windows, który wykonuje operację procdump . Problem z plikiem wsadowym polega na tym, że muszę wykonać cd do katalogu plików wsadowych przed wykonaniem zadania, w przeciwnym razie skrypt nie będzie działał.
Jak przejść do bieżącego katalogu plików wsadowych?
Wypróbowałem następujący kod w moim procdump.bat
:
cd "%~dp"
procdump -h devenv.exe mydump.txt
Ale się nie udało, komunikat o błędzie to:
Następujące użycie operatora ścieżki w podstawianiu parametrów wsadowych jest nieprawidłowe:% ~ dp "
W przypadku prawidłowych formatów wpisz CALL /? albo za /?
Edycja: Podana odpowiedź działa, ale istnieje tylko jeden haczyk: jeśli mój bieżący katalog jest inny niż katalog pliku wsadowego, otrzymam komunikat „System nie może znaleźć określonej ścieżki”. Czy ktoś ma jakieś pomysły?
źródło
Odpowiedzi:
Ok, myślę, że znalazłem tutaj, co masz na myśli
%~dp
.Myślę, że tak naprawdę chcesz to zrobić:
(!) Należy jednak pamiętać, że nadal nie zapewni to właściwego zachowania podczas próby wykonania wsadowej, gdy bieżący katalog znajduje się na innym dysku, ponieważcd
nie zmienia aktywnego dysku.Edycja : Najwyraźniej (dzięki @Yoopergeek ) możesz dodać
/D
parametr docd
polecenia, aby mógł on również zmienić aktywny dysk.źródło
help call
nacmd
szybka.%~dp0
cd /D
lubcd "%~dp0" /D
nie może pomóc.cd /D "%~dp0"
. Dzięki.Zostawiłbym komentarz do odpowiedzi Fretje, ale najwyraźniej nie mogę ???
W każdym razie, jeśli chodzi o notatkę: Zauważ
jednak, że nadal nie zapewni to właściwego zachowania, gdy próbujesz wykonać wsad, gdy bieżący katalog znajduje się na innym dysku, ponieważ cd nie zmienia dysku aktywnego.
Użyj
/D
przełącznika w poleceniu CD, a CD zmieni aktywny napęd.źródło