2010-12-12 14 views
318

Chcę utworzyć kilka plików wsadowych, aby zautomatyzować niektóre rzeczy.Jaki jest bieżący katalog w pliku wsadowym?

Moje pytanie dotyczy utworzenia pliku wsadowego. Jaki jest bieżący katalog? Czy jest to katalog, w którym znajduje się plik, czy jest to ten sam katalog, który pojawia się w cmd?

Odpowiedz

660

Od wewnątrz pliku wsadowego:

+5

@ Јοеу - '% 0' mógł podać nazwę bieżącego podprogramie, ale'% ~ dp0' ** zawsze ** poda pełną ścieżkę do wykonującego pliku wsadowego. – dbenham

+68

W rzeczywistości wygląda na to, że% ~ dp0 podaje pełną ścieżkę do katalogu *, w którym znajduje się wykonywany plik wsadowy.% ~ Dpnx0 (co jest równoważne% ~ f0) podaje pełną ścieżkę do pliku wsadowego. Więcej informacji można znaleźć na stronie http://www.robvanderwoude.com/parameters.php. – deadlydog

+5

Zobacz także dobre, szczegółowe odpowiedzi na podobne pytanie: [Pobierz listę przekazanych argumentów w skrypcie wsadowym Windows (.bat)] (http: // stackoverflow.com/q/357315/938111) – olibre

3

Jest to katalog, od którego rozpoczyna się plik wsadowy. Na przykład. jeśli twoja partia jest w c:\dir1\dir2 i robisz cd c:\dir3, a następnie uruchom pakiet, bieżący katalog będzie c:\dir3.

20

To zazwyczaj jest zwykle katalogiem, z którego uruchamiany jest plik wsadowy, ale jeśli uruchamiasz plik wsadowy ze skrótu, można podać inny katalog początkowy. Ponadto, gdy jesteś w cmd, a bieżący katalog to c:\dir3, nadal możesz uruchomić plik wsadowy przy użyciu c:\dir1\dir2\batch.bat, w którym to przypadku bieżącym katalogiem będzie c:\dir3.

2

Powiedzmy, że otwierasz plik w bieżącym katalogu. Polecenie będzie:

start %cd%\filename.filetype 

Mam nadzieję, że odpowiedziałem na twoje pytanie.

5

W pliku wsadowym% cd% jest najczęściej stosowane polecenia w bieżącym katalogu, chociaż można ustawić własną zmienną:

set mypath=%cd% 
echo %mypath% (where %mypath% is the current directory that the batch file is sitting in) 

Więc mówisz, że zostały chcąc otworzyć Myprog.exe. Jeśli znajdował się w tym samym folderze, można użyć polecenia:

To spowoduje otwarcie Myprog z bieżącego folderu.

Inną opcją jest utworzenie katalogu w C: o nazwie AutomatePrograms. Następnie należy przesłać pliki do tego folderu, a następnie można je otworzyć za pomocą następującego polecenia:

start C:\AutomatePrograms\Myprog1.exe 
start C:\AutomatePrograms\Myprog2.exe 
start C:\AutomatePrograms\Myprog3.exe 
+0

Jak zaznaczono w górnej odpowiedzi tutaj, '% cd%' jest zmienna, więc uruchomienie pliku wsadowego z Eksploratora Windows jako admin da 'C: \ WINDOWS \ system32', co prawie na pewno nie jest tym, czego potrzebujesz. '% ~ dp0' jest bardziej spójne. – icc97

2

To jest katalog, z którego uruchomić polecenie, aby wykonać plik wsadowy.

Jak wspomniano w powyższych odpowiedziach można dodać polecenia poniższy odnośnik do skryptu, aby certyfikować:

> set current_dir=%cd% 
> echo %current_dir% 
Powiązane problemy