Форум: "Потрепаться";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
ВнизГде есть материал. Найти похожие ветки
← →
Cerberus © (2005-05-28 22:36) [0]Про написание Bat файлов. Чем подробнее тем лучше.
← →
Yanis © (2005-05-28 22:37) [1]В XP есть в справке.
← →
Cerberus © (2005-05-28 22:40) [2]А чё нить с примерами
← →
Yanis © (2005-05-28 22:46) [3]В этой справке с примерами.
← →
Eraser © (2005-05-28 22:52) [4]Cerberus © (28.05.05 22:36)
В книге Фигурнова.
← →
palva © (2005-05-28 23:02) [5]Из командной строки спросить
cmd /?
а потом искать в Google примеры
← →
Alex Konshin © (2005-05-29 08:02) [6]На самом деле по cmd /? много не узнаешь. Но оказывается, что в w2k и XP есть справка по bat, только лежит она в странном месте.
На XP:
1.На десктопе кликнете F1
2.Тыкаем на любом пуктике слева.
3.Внизу слева кликаем на Tools.
4.Нижние три папки слева - "Command-line reference A-Z" и т.п. - это то, что мы ищем. Например в первой папке описаны такие команды, как for, find, findstr.
Как вы заметили, найти эту справку непросто и я лично не знаю, как их найти иначе, и как же это было задумано в MS.
Прмямой путь такой:
ms-its:E:\WINNT\Help\ntcmds.chm::/ntcmds.htm
Ее можно открыть в IE, но при этом лично у меня не показвает scrollbar справа.
На Win2K похоже, но найте немного проще - хоть догадаться можно, куда жать. Но я тоже добираюсь до него через дескоп->F1.
← →
Alex Konshin © (2005-05-29 08:35) [7]Могу поделиться некими приемами применения bat, до которых трудно догадаться.
1.Как получить полный путь к директорию bat-файла?
for /D %%I in ("%~dp0.") do set PROJECT_HOME=%%~fI
Аналогично получаются имя директория:
for /D %%I in ("%~dp0.") do set PROJECT=%%~nI
Ну, как достать короткие имена вы уж сами догадаетесь.
Надеюсь понятно, что вместо %~dp0. можно подставить и другие выражения.
2.Как распарсить некую переменную?
Тоже через for. Применяем его способность парсить вывод команды, в данном случае echo. Пример:
set IEJAVACLASS=IECanvas
set nativeclasses=%IEJAVACLASS%,HTMLElementIE,IEObject,HTMLNodeIE,HTMLTextIE,HTMLDocumentIE,HTMLCollectionIE,HTMLCaretIE,HTM LPointerIE,HTMLMarkupPointerIE,HTMLSegmentIE,HTMLSelectionSegmentIE,HTMLHighlightSegmentIE,HTMLLineInfoIE,HTMLRendererEx ceptionIE,HTMLAttributeIE
set javafiles=
set JAVAHFILES=
set GENJNIFILES=
set javaclasses=
set list=%nativeclasses%,
:processlist
for /F "usebackq eol=, tokens=1*" %%I in (`echo %list%`) do (
set javafiles=%javafiles% %JSRC%\%%I.java
set javaclasses=%javaclasses% %package%.%%I
set GENJNIFILES=%GENJNIFILES% %GENJNI%\%%I.h
set JAVAHFILES=%JAVAHFILES% %JOUT%\%%I.class
set list=%%J
)
if "%list%" NEQ "" goto processlist
3.Как прочитать что-нибудь из файла?
Обычно нужно прочитать какой-то тектовый файл и достать из него какую-то информацию. Например, прочитать некий конфиг.
Я использую для этого findstr и опять-таки for. Findstr выдает искомые строчки, а for их парсит.
В примере читается значение, заключенное в апострофы из строки файла, начинающейся с "jdkhome = "", т.е. в конфиге она выглядит примерно так:
jdkhome = "C:\jdk1.4";
А вот и сам пример:
for /F "usebackq delims=" tokens=2*" %%I in (`findstr /r "^jdkhome *= *"" "%ARTSC_IA_HOME%\build.config"`) do (
set JAVA_HOME=%%I
)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.06.29;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c