|
#!/bin/bash |
|
|
|
# mmm-bat, Copyright (C) 2013-2014 Джинсоп Ким (vmfhrmfoaj @ yahoo.com) |
|
# mmm-bat поставляется СОВЕРШЕННО БЕЗ ГАРАНТИЙ; для подробностей |
|
# введите ЛИЦЕНЗИОННЫЙ файл. Это бесплатное программное обеспечение, и вы можете |
|
# распространять его при определенных условиях; введите ЛИЦЕНЗИЯ |
|
# для получения подробной информации. |
|
# Если файл ЛИЦЕНЗИИ не существует, |
|
# У вас должен быть получил копию Стандартной общественной лицензии GNU |
|
# вместе с этой программой; если нет, напишите в Бесплатное программное обеспечение |
|
# Foundation, Inc., 51 Франклин-стрит, Пятый этаж, Бостон, MA 02110-1301, США. |
|
|
. mmm-bat.sh |
|
|
|
# конфигурации |
|
build_log_file = «mmm.log» |
|
script_file = «push.bat» |
|
|
|
# |
|
# functions |
|
# |
|
function helpUsage () { |
|
echo «Использование:» |
|
echo «$ 0 [dir] [название продукта] [-a]?» |
|
echo «- dir: путь для сборки» |
|
echo «например) оборудование/qcom/камера» |
|
echo » — название продукта: строка продукта для mmm-build. « |
|
echo -n» Если название продукта » custom «,» |
|
echo «мы выполняем файл » mmm-bat-custom.sh » . « |
|
echo «» |
|
echo «Необязательно:» |
|
echo «- режим добавления (-a): для накопления списка push.» |
|
} |
|
|
|
# изменить рабочий каталог |
|
cur_dir = ` pwd` |
|
root_dir = $ (getRootPath $ {cur_dir}) |
|
если [! -d $ {root_dir}]; затем |
|
echo «Не удается найти каталог Android. « |
|
echo» — [DEBUG] cur_dir: «$ {cur_dir:} » « |
|
echo «- [DEBUG] root_path: » $ {root_path} «» |
|
echo «» |
|
helpUsage |
|
exit -1 |
|
else |
|
# для mmm-build |
|
cd $ {root_dir} |
|
fi |
|
|
|
# init |
|
relative_target_path = $ 1 |
|
product_name = $ {2: — $ (predProductName)} |
|
is_accumulation_mode = 3 доллара США |
|
|
|
# настроить целевой путь. |
|
target_path = $ (getTargetPath «$ {cur_dir}/ $ {relative_target_path} «) |
|
|
|
# параметр проверки |
|
is_valid = $ (checkParams $ {target_path} $ {product_name}) |
|
если [$ {is_valid} == «НЕДЕЙСТВИТЕЛЬНО»]; затем |
|
helpUsage |
|
exit -1 |
|
fi |
|
|
|
# заголовок журнала |
|
writeLog «————————— —————————————— « |
|
writeLog «Дата: $ (дата)» |
|
writeLog «Продукт: $ {product_name}» |
|
writeLog «Путь: $ {target_path} « |
|
writeLog» Каталог сборки $ {cur_dir} « |
|
|
|
# сборка и генерация сценария push |
|
if [-z «$ {is_accumulation_mode}»]; затем |
|
build $ {target_path} $ {product_name} $ {build_log_file} $ {script_file} |
|
else |
|
build $ {target_path} $ {product_name} $ {build_log_file} $ {script_file} $ {script_file} |
|
fi |
|
|
|
# вернуть текущий каталог |
|
cd $ {cur_dir} |
Сохранить дату в формате ДД-МММ-ГГГГ
Я пытаюсь получить сегодняшнюю дату в ДД-МММ -ГГГГ
(например, 12-JUN-2015), чтобы я мог загрузить файл с FTP-сервера, который будет создаваться ежедневно..
Я использую
@echo offset month-num =% date: ~ 3,2% IF "% month-num: ~ 0, 1% "==" 0 "SET month-num =% month-num: ~ 1% FOR/f" tokens =% month-num% "%% a in (" янв фев мар апр май июн июл авг сен окт ноя dec ") установите mo-name = %% aecho% mo-name%
это дает синтаксическую ошибку
Я был бы признателен за любой совет, поскольку я понятия не имею, с чего начать.
Ганеш, вы используете для Цикл/f
для преобразования числового месяца в его аббревиатуру довольно умен. Я думаю, что часть вашей проблемы заключается в том, что тот, кто изначально написал код, который вы используете, написал его для своей локали, а не для вашей. % date%
выглядит иначе для исходного автора, чем для вас.
Формат % date%
непредсказуем (ну, в любом случае, без сложных запросов к реестру и преобразований). Чтобы получить дату и время без привязки к языку, проще использовать wmic os get localdatetime
.
Попробуйте следующее:
@echo offsetlocalfor/f %% I in ('wmic os get localdatetime/format: list ^ | find "="') do set "%% I" set "YYYY =% localdatetime: ~ 0,4%" set/a "MM = 1% localdatetime: ~ 4,2% - 100" set "DD =% localdatetime: ~ 6,2%" for/f "tokens =% MM%" %% I in ("JAN FEB MAR АПР МАЙ ИЮН ИЮЛЬ АВГУСТ СЕНТЯБРЬ ОКТЯБРЬ НОЯБРЬ ") установить" month = %% I "echo% DD% -% month% -% YYYY%
1
Обычно запрашиваются отчеты за предыдущий месяц. Итак, чтобы получить предыдущий месяц, сделаем небольшую модификацию:
@echo offsetlocalfor/f %% I in ('wmic os get localdatetime/format: list ^ | find "= "') установить" %% I "установить" ГГГГ =% localdatetime: ~ 0,4% "установить/a" MM = 1% localdatetime: ~ 4,2% - 101 "установить" DD =% localdatetime: ~ 6 , 2% "for/f" tokens =% MM% "%% I in (" JAN FEB MAR APR MAY JUN JUL AUG SEP OCT NOV DEC ") установить" month = %% I "echo% month% -% YYYY %
Теперь передача этого ммм-гггг вашему EXE заставит его работать в течение этого месяца.
1