Pobierz bieżący katalog plików batchfile
Po pierwsze, widziałem ten temat ale nie mogłem tego zrozumieć.
Pytanie:
W D:\path\to\file.bat
znajduje się plik wsadowy o następującej treści:
echo %cd%
pause
Wyjście to:
C:\
To musi być D:\path\to
3 answers
Systemowa zmienna tylko do odczytu %CD%
zachowuje ścieżkę wywołującego wsad, a nie lokalizację pliku wsadowego.
Możesz uzyskać nazwę samego skryptu wsadowego wpisaną przez Użytkownika za pomocą %0
(np. scripts\mybatch.bat
). rozszerzenia parametrów mogą być zastosowane do tego celu, więc %~dp0
zwróci Napęd i ścieżkę do skryptu wsadowego (np. W:\scripts\
), a %~f0
zwróci pełną ścieżkę (np. W:\scripts\mybatch.cmd
).
Możesz odwołać się do innych plików w tym samym folderze co skrypt wsadowy, używając tego składnia:
CALL %0\..\SecondBatch.cmd
To może być nawet użyte w podprogramie, Echo %0
poda Etykietę wywołania, ale echo "%~nx0"
poda nazwę pliku skryptu wsadowego.
Gdy zmienna %0
jest rozwijana, wynik jest zamknięty w cudzysłowie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-16 18:18:49
Bardzo proste:
setlocal
cd /d %~dp0
File.exe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-05 23:44:27
W Twoim .plik bat:
set mypath=%cd%
Możesz teraz użyć zmiennej %mypath%
, aby odwołać się do ścieżki do pliku .bat
. Aby sprawdzić poprawność ścieżki:
@echo %mypath%
Na przykład plik o nazwie DIR.bat
o następującej treści
set mypath=%cd%
@echo %mypath%
Pause
Uruchom z katalogu g:\test\bat
wyświetli Echo tej ścieżki w oknie poleceń DOS.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-12 08:01:04