Jak uruchamiać programy w tym samym katalogu co plik wsadowy systemu windows?
Mam w tym samym folderze plik .bat
i .exe
.
Nie mogłem wywołać pliku .exe
z .bat
, chyba że podam do niego pełną ścieżkę absolutną.
Czy istnieje sposób, aby nie określić ścieżki?
3 answers
Spróbuj wywołać .exe
z %~dp0
, tak: %~dp0MyProgram.exe
.
%0
zawiera pełną ścieżkę do pliku .bat
.
~dp
mówi, aby uzyskać napęd i ścieżkę, w tym trailing \
.
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
2010-04-28 15:10:36
Rozwiązałem to zmieniając katalog roboczy używając pushd na początku skryptu i przywracając na końcu skryptu używając popd. W ten sposób można zawsze założyć, że katalog roboczy jest taki sam jak lokalizacja pliku bat.
pushd %~dp0
ProgramInSameFolderAsBat.exe
popd
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-04-05 09:39:34
Wydaje się dziwne? Od jakiegoś czasu nie pracowałem na Windowsie, ale
Czy próbowałeś prowadzić z/
./ programexe
Naprawdę nie powinno być różnicy? może nietoperz wykonuje z kontekstu C:\Windows a może twoja partia nagrała jakąś płytę do innego katalogu?
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
2010-04-28 15:07:50