Предположим, я использую пакетный файл и хочу, чтобы он направлялся в папку, расположенную в том же каталоге пакета. Если я не ошибаюсь, вы должны написать «% ~ dp0 \ whateverfoldername». Но нельзя сделать то же самое, просто написав «. \ Whateverfoldername»? Если да, то в чем разница и/или преимущество соответствующей команды?Разница между "% ~ dp0" и ". "?
ответ
pushd %~dp0
часто используется для изменения исходного каталога, из которого была запущена партия. Это очень полезно в новых ОС, когда пользователь может «Запуск от имени администратора», который изменяет текущий каталог для вас! Попробуйте это когда-нибудь. Просто сделайте простую летучую мышь
@echo off
echo.CD=%CD%
pushd %~dp0
echo.CD=%CD%
pause
Теперь запустите. Теперь запустите его снова как «Администратор» в Vista, Win 7, Win 8, 2008 Server или 2012 Server. Посмотрите, что произойдет?
Хорошо, это очень помогает, я вижу, почему нужен dp0. Но в чем разница между pushd и cd? – user2259606
Отвечая на вопрос: разница между pushd и cd заключается в том, что pushd сохраняет предыдущую папку/путь для использования командой POPD. POPD Изменяет каталог обратно на путь/папку, которая была недавно сохранена командой PUSHD. Boom. Я люблю тебя, ребята, спасибо! – user2259606
Если вам нужно пройти корень на другой диск, PUSHD работает без проблем, тогда как с CD вам нужно будет либо использовать CD с параметром/d, либо вызвать CD, а затем ввести имя диска. –
".\
будет найти относительно каталога CURRENT
, следовательно, если вы изменили каталоги с командой CD
, то вы будете смотреть на THAT
каталог, а не каталог, в котором партии находится.
На самом деле, это нормально, чтобы создать отдельный каталог, который часто называют \batch
или, возможно, \belfry
для сохранения пакетных файлов. Если ,bat
, о котором идет речь, находится на path
, он будет расположен. %dp0
даст место .bat
.
Кроме того, рабочий каталог может отличаться от родительского каталога скрипта в зависимости от того, как был запущен скрипт. –
- 1. Эквивалент% ~ dp0 в sh
- 2. Разница между композитором.phar между | и ||
- 3. Разница между ~/и ../
- 4. разница между $ и $$
- 5. разница между & и * Декларация
- 6. Разница между% и/
- 7. Разница между jquery и $
- 8. разница между -> и ::
- 9. Разница между. и ==
- 10. разница между Scala «+:» и «::»
- 11. Grails: Разница между \ $ {} и $ {}
- 12. Разница между! и ~
- 13. разница между (*) [] и * [] декларации
- 14. Разница между == и .equals()?
- 15. Разница между fmod и%
- 16. Разница между === и ==
- 17. Разница между комментариями/* */и/** * /?
- 18. Разница между ./ и ~/
- 19. Разница между: = и not (=)
- 20. разница между «/» и Слим
- 21. разница между 'есть' и '=='
- 22. Разница между «источником» и «.»
- 23. разница между `% в%` и `` ==
- 24. OCaml разница между :: и @
- 25. разница между $ @ и $ *
- 26. разница между! = И! ==
- 27. htaccess - Разница между. * И \ *
- 28. разница Javascript между «=» и «===»
- 29. Разница между «+» и «~»
- 30. какая разница между @ и @ :?
Возможно, вы можете. Но это будет неудачно, если текущий каталог не там, где вы надеетесь. –
Который был бы результатом запуска в качестве администратора ... таким образом, вы делаете то, что говорит RGuggisberg ниже. Теперь я получаю его lol – user2259606