[BAT] Problem chyba z aktualną ścieżką

0

Cześć mam jakiś tragicznie dziwny kłopot :/

Mam plik bat, który wygląda tak:

cd update
del /q *.*
cd ..
rd update

Zadaniem tego pliku jak widać jest:

  • usunięcie wszystkich plików wewnątrz katalogu update
  • usunięcie katalogu update

Bat jest uruchamiany przez osobą aplikację. Plik bat i aplikacja go uruchamiająca znajdują się w tym samym katalogu(w katalogu, w którym jest folder update - ten do usunięcia).

Gdy odpalam bata z dwukliku to wszystko działa OK. Natomiast, gdy bat jest odpalany z poziomu tamtej aplikacji, to pokazuje się komunikat, że nie odnaleziono ścieżki i zaczyna listować katalogi Windowsa :|

Podejrzewam, że to coś z aktualnym katalogiem. Ale wg mojej wiedzy aktualnym katalogiem jest katalog, w którym leży aplikacja.

O co tu chodzi i co mogę zrobić, żeby było dobrze?
Bata piszę ręcznie, natomiast nie mogę zmienić nic w aplikacji go uruchamiającej.

0

Nie, aktualnym katalogiem jest aktualny katalog (a domyślnie jest nim C:\WINDOWS), a nie katalog, w którym znajduje się aplikacja.

Ponadto, zamiast

cd katalog
del *.*
cd ..
rd katalog

możesz napisać

del katalog
rd katalog

Pierwsze polecenie usuwa pliki wewnątrz katalog, drugie usuwa sam katalog.

0

OK, więc jak zmienić aktualny katalog na ten, w którym jest plik?

Coś zalazłem:

cd %~dp0

wystarczy?

0

Proponuję

pushd %~dp0

żeby wejść do katalogu, a potem

popd

żeby wrócić do początkowego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1