В дарксе у команды changes
есть замечательная опция -s
, которая выводит под каждым патчем краткую пофайловую сводку:
[site D:]$ darcs cha --last 1 -s Fri Mar 4 22:00:52 Russian Standard Time 2011 franoleg@gmail.com * #436 notify: Support no-auth SMTP sending M ./help/IndianaSettingsHelp.wiki -1 +5 M ./sendmail.py -7 +16
В меркуриале я такого ничего не нашёл, но по мотивам поста Mercurial: listing files modified in incoming changesets, and guessing conflicts соорудил вот такой батник:
@echo off if .%1.==.. goto USAGE
hg log -r %1 hg log -vr %1 | grep "files:" | sed "s,files:,,"| sed "s,\^[ ]\*,," | tr " " "\012" | sort | uniq goto END
:USAGE echo Usage: %0 REV echo Show hg revision info with file list
:END
Разумеется, требуются unxutils.
Тэги: cmd, darcs, hg
Написать комментарий
Для некоторых пакетных файлов полезно различать, был ли файл запущен из командной строки или двойным щелчком из проводника (или его аналога). Например, при запуске пакетника, выполняющего функции мейк-файла, из проводника результаты сборки хочется оставить на экране — то есть поставить в конце вызов команды pause
. Но если запускать его из консоли, то «пауза» будет совершенно лишней.
Можно заметить, что при вызове из проводника (или, например, из менеджера Total Commander) переменная %0
содержит полный путь к пакетному файлу, заключённый в кавычки. Если же пакетник вызывается из консоли, то, скорее всего, при вызове было указано имя файла (с расширением или без).
Справка по команде call
подсказывает нам, что имя вызванного пакетного файла можно получить при помощи выражения %~n0
, а имя с расширением — при помощи %~nx0
. Сравнив эти выражения с исходным значением %0
, можно принять решение о вызове «паузы».
То есть пакетный файл можно закончить следующим фрагментом:
if .%0. == .%~n0. goto END if .%0. == .%~nx0. goto END pause :END
P. S. Если есть вероятность, что пакетник будет запускаться не только из его собственного каталога, т. е. командами вида dir\script
, то можно зайти с другой стороны и сравнивать значение %0
с полным путём: %~f0
.
Тэги: cmd, советы
Написать комментарий