Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах

Автор: art569
Дата сообщения: 21.08.2006 20:23
ViSiToR
Проверил на всех предыдущих URL

Код: call checkURL.cmd "http://www.paehl.com/open_source/?down1load=curl_715_4.zip"
call checkURL.cmd "http://www.paehl.com/open_source/?download=curl_715_4.zip"
call checkURL.cmd "http://my.opera.com/Creat0R/homes/files/TranslateIt.3.0.www.lugarus.com.rar"
Автор: bredonosec
Дата сообщения: 21.08.2006 23:16
Тут в процессе решения задачи автонастройки выни одним кликом возникли некоторые вопросы:

1. как из батника/кмд добавить к файлу "хостс" кучу ИПов разом?
Или другим образом их на локалхост перекинуть (ака автоотбой рекламы, замеченных на втыкании червей инет-ресурсов, проч г*на)
2. запуск рег-файла из кмд/батника без доп окон или подтверждений - какие ключи? Ограничения типа "рег адд можно юзать из кмд, но нельзя из батника" - не существуют?
3. замена всех найденных включений некоего слова на что-то другое батником в указанном файле - как? В строках присутствуют слеши, знаки равенства, запятые.. Без окон, разумеется, чтоб не пугать.
4. можно ли из батника задать команду на анинсталл неких компонентов выни? Напр, вынь месенджер, "особые возможности (для инвалидов), МСН эксплорер, проч? Не регом убить некие значения в реестре, а именно на корерктный анинсталл команду подать?
5. убийство дефолтных шар - знаю, что можно кидать по строчкам типа
net share C$ /delete на каждый диск. А можно ли (ну не знаю я, сколько винтов на целевом компе!) одной строкой навроде
for %%i in (C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z do if exist "чего-то там" - "убей его"? Задавливание сообщений об ошибках - вроде методом >null ?
Также знаю, что можно рег добавить насчет дисейбл автошареворкс, но интересует также этот момент.
Автор: Smitis
Дата сообщения: 22.08.2006 09:12
bredonosec

Цитата:
2. запуск рег-файла из кмд/батника без доп окон или подтверждений - какие ключи? Ограничения типа "рег адд можно юзать из кмд, но нельзя из батника" - не существуют?

reg import regfile
regedit /s regfile

Добавлено:

Цитата:
4. можно ли из батника задать команду на анинсталл неких компонентов выни? Напр, вынь месенджер, "особые возможности (для инвалидов), МСН эксплорер, проч? Не регом убить некие значения в реестре, а именно на корерктный анинсталл команду подать?

То что сейчас могу посмотреть:
Messenger:

Код:
rundll32 setupapi,InstallHinfSection NetMtg.Remove 132 %windir%\inf\msnetmtg.inf
Автор: xitsa
Дата сообщения: 22.08.2006 20:11
isem

Цитата:
Есть текстовый файл. Из него нало удалить строки 2-253 например. Как ето можно сделать? Спасибо


Я снова воспользуюсь sed'ом:

ssed.exe -e "2,253d" input.txt > output.txt

удаляет строки со второй по 253ю включительно

Добавлено:
Grease

Цитата:
Смысл в следующем: Есть файлы *.sql в них есть строчка   transdate in ('200601')   Нужно поменять эту дату на например сегодняшнюю !!! Таких файлов аж 25 шт.   Было бы неплохо одним махом заменить эту дату на сегодняшнюю во всех файлах а также в одном из этих файлах есть такая срока transdate in ('200507','200508','200509','200510','200511','200512','200601','200602','200603','200604','200605','200606') В следующий месяц нужно будет все сместить на один месяц вперед т.е был 200507 - надо будет поменять на 200508 и так все 12 чисел   Таких файлов 8 Вот и постигла меня мысть все это автоматизировать


Это уже интересней


Код:
ssed -e "s/transdate *in *('\([1-2][0-9][0-9][0-9][0-2][0-9]\)')/transdate in ('200712')/g" input.sql >output.sql
Автор: bredonosec
Дата сообщения: 22.08.2006 23:10
Smitis

Цитата:
reg import regfile
regedit /s regfile
Синтаксис годится для тех и других? Более никаких ключей, убивающих окошко "вы уверены, что хотите внести изменения в рестр" и "изменения внесены", не требуется?

Цитата:
То что сейчас могу посмотреть:
Пасибо
Мессенджер - это убиваются оба компонента, появляющиеся после вытирания "хайд" в сисок.инф?
//строка из файла//
msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,hide,7 ;прячет компонент windows messenger (второй-14,3М)
//
ишшо бы на факс, мсн эксплорер, прочие расхожие гадости нарыть, счастья было б полные штаны.


Цитата:
Радикальное решение -
Это решение знаю, о чем написал выше. Интересовал тот путь.
Автор: isem
Дата сообщения: 23.08.2006 14:25
xitsa

как в текстовом файле с помощью седа удалить все строки до строки с определенным текстом -3 строки.
Спасибо
Автор: xitsa
Дата сообщения: 23.08.2006 17:50
GreaseOD

Цитата:
а также в одном из этих файлах есть такая срока transdate in ('200507','200508','200509','200510','200511','200512','200601','200602','200603','200604','200605','200606') В следующий месяц нужно будет все сместить на один месяц вперед т.е был 200507 - надо будет поменять на 200508 и так все 12 чисел  


Эта штука будет посложнее и пострашнее, так как sed—текстовый редактор, но это не беда

Чтобы сделать такую штуку для файла input.sql:

Код:
ssed -f f.sed input.sql >output.sql
Автор: Smitis
Дата сообщения: 23.08.2006 23:21
bredonosec

Цитата:
Синтаксис годится для тех и других? Более никаких ключей, убивающих окошко "вы уверены, что хотите внести изменения в рестр" и "изменения внесены", не требуется?

reg полностью консольный, никаких окошек у него не появляется. Лишних вопросов тоже.
Для regedit ключ /s недокументированый. Всё работает. А вообще-то такие вещи проще и быстрее проверить самому


Цитата:
Пасибо
Мессенджер - это убиваются оба компонента, появляющиеся после вытирания "хайд" в сисок.инф?
//строка из файла//
msmsgs=msgrocm.dll,OcEntry,msmsgs.inf,hide,7 ;прячет компонент windows messenger (второй-14,3М)
//
ишшо бы на факс, мсн эксплорер, прочие расхожие гадости нарыть, счастья было б полные штаны.

Не скажу точно, что там удаляется у месенжера, не помню уже. У меня эта вся хрень сейчас убита прямо в дистрибутиве. Просто нашёл свои старые записи и привёл их. Вроде убивается полностью.
MSN Explorer, вроде, удаляется вот так:

Код:
rundll32 advpack.dll,LaunchINFSection %windir%\inf\msnmsn.inf,msnexplr.Uninstall
Автор: ViSiToR
Дата сообщения: 24.08.2006 01:08
art569
Спасибо, вроде всё работает

2 ALL

Поп поводу sed'а, - Возможно с его помощью, взять из текстового файла все строчки которые являются ссылками, и вписать их всех подряд в другой файл? Т.е, нужно в определённом файле, найти все строчки в которых есть нчало ссылки httр://, и всё что идёт после такого начала (после сочетания таких символов), нужно вписать как отдельную строчку в другой-новый файл. И также для все строчек в этом файле... вот пример содержания некоторых строчек в таком файле:

URL=httр://ссылка
что-то написанно, но не важно что...
URL=httр://другая ссылка


Вот нужно взять переписать в другой текстовый файл, только строчки httр://ссылка и httр://другая ссылка... в принципе, каждая строчка содержащая ссылку, начинается с URL= И если трудно отделить это начало от остальной ссылки, то можно всю строку вписать в файл - но было бы неплохо отдельно ссылки.
Автор: GreaseOD
Дата сообщения: 24.08.2006 09:17
xitsa
СПАСИБО ОГРОМНОЕ. ЭТО ПРОСТО СУПЕР. МНЕ КАЗАЛОСЬ ЧТО ЭТО СДЕЛАТЬ НЕВОЗМОЖНО БАТ СКРИПТОМ. СКОЛЬКО НЕ СПРАШИВАЛ ТОЛЬКО НА ЭТОМ ФОРУМЕ Я РЕАЛЬНО РЕШИЛ СВОЮ ПРОБЛЕМУ.
Если возможно напишите пожалуйста как работает этот замечательный редактор sed!!!
а то sed /? мало чего показывает!!!
Автор: Smitis
Дата сообщения: 24.08.2006 09:58
GreaseOD
По редактору SED:
http://www.arm.kiev.ua/doc/sed_awk/sed.txt
http://www.csa.ru/CSA/tutor/sed.htmr
Автор: NightBowl
Дата сообщения: 24.08.2006 10:27
ViSiToR

Цитата:
Есть такой вопрос - Как в Win98, показать на экран последние символы переменной без путей?

Программирование на чистом бате под DOS-ME это песня. Вот пример чистого бат файла который делит по буквам строки, подаваемые как параметр командной строки. Работает под DOS-ME , под XP запускать так: COMMAND /C SPLITPAR SPLITME Если разберешься как оно работает, то вполне сможешь адаптировать его для своей задачи. Только у этого варианта много ограничений. Хотя очень нетривиальное и красивое решение. Есть еще в природе два варианта - один простой работает только под DOS 3.30-6.22 - другой зубодробительный как-то через команду del, но неизящный.
Smitis

Цитата:
Без сторонних средств ограничения COMMAND.COM не обойти.

В достаточно примитивных случаях вполне можно обрабатывать как строки так и текстовые файлы без сторонних средств - только средствами COMMAND.COM!
Автор: bredonosec
Дата сообщения: 24.08.2006 14:18
Smitis

Цитата:
У меня эта вся хрень сейчас убита прямо в дистрибутиве.
- эт чтоб в заливку положить - кто возжелает - получает чистую ненастроенную, кто нет - после установки щелк батник - и обработка напильником прошла.
сеньки за значения.
Автор: Serge2005
Дата сообщения: 24.08.2006 19:18
Добрый вечер!
Помогите, пожалуйста: есть много (сотни) файлов формата: YYMM_DD__HH-MM-SS__name.JPG. name - любой набор символов любой длины. Остальная часть - дата и время (вытащенные из EXIF). Можно ли массово "изменять время" на всех этих файлах? Например прибавить 42 минуты 35 секунд? Очень нужно.....пожалуйтса. Осталось мало времени, а врючную уж очень сложно.....
Автор: xitsa
Дата сообщения: 24.08.2006 22:01
ViSiToR

Цитата:
По поводу sed'а, - Возможно с его помощью, взять из текстового файла все строчки которые являются ссылками, и вписать их всех подряд в другой файл? Т.е, нужно в определённом файле, найти все строчки в которых есть нчало ссылки httр://, и всё что идёт после такого начала (после сочетания таких символов), нужно вписать как отдельную строчку в другой-новый файл. И также для все строчек в этом файле... вот пример содержания некоторых строчек в таком файле:   URL=httр://ссылка что-то написанно, но не важно что... URL=httр://другая ссылка   Вот нужно взять переписать в другой текстовый файл, только строчки httр://ссылка и httр://другая ссылка... в принципе, каждая строчка содержащая ссылку, начинается с URL= И если трудно отделить это начало от остальной ссылки, то можно всю строку вписать в файл - но было бы неплохо отдельно ссылки.


Возможно. Если особенно у тебя действительно один линк на строку:
f.sed:

Код:
/^ *URL= *htt/{
s/^ *URL= *//
p
}
Автор: Kirillhome
Дата сообщения: 24.08.2006 22:20
Serge2005
Не красиво, но сделал...

[more=Смотрите...]

Код:
@Echo Off
For %%a In (*.jpg) Do @Call :Rena %%a
For %%a In (*.123) Do @Call :Renb %%a
GoTo :EOF

:Rena
Set f_Name=%1
Set f_END=%f_Name:~17%

set /A Min_pl=55
Set /A Sec_pl=55

IF %f_Name:~0,1%==0 (
SET /A f_Year=%f_Name:~1,1%) else (
SET /A f_Year=%f_Name:~0,2%)

IF %f_Name:~2,1%==0 (
SET /A f_Month=%f_Name:~3,1%) else (
SET /A f_Month=%f_Name:~2,2%)

IF %f_Name:~5,1%==0 (
SET /A f_Day=%f_Name:~6,1%) else (
SET /A f_Day=%f_Name:~5,2%)

IF %f_Name:~9,1%==0 (
SET /A f_Hour=%f_Name:~10,1%) else (
SET /A f_Hour=%f_Name:~9,2%)

IF %f_Name:~12,1%==0 (
SET /A f_Min=%f_Name:~13,1%) else (
SET /A f_Min=%f_Name:~12,2%)

IF %f_Name:~15,1%==0 (
SET /A f_Sec=%f_Name:~16,1%) else (
SET /A f_Sec=%f_Name:~15,2%)

SET /A f_sec=%f_Sec%+%Sec_pl%
SET /A f_Min=%f_Min%+%Min_pl%

IF %f_Sec% GTR 59 (
SET /A f_Sec=%f_Sec%-60
SET /A f_Min=%f_Min%+1)

IF %f_Min% GTR 59 (
SET /A f_Min=%f_Min%-60
SET /A f_Hour=%f_Hour%+1)

IF %f_Hour% GTR 23 (
SET /A f_Hour=%f_Hour%-24
SET /A f_Day=%f_Day%+1)

if %f_Month%==1 (Set /A Max_Day=31)
if %f_Month%==2 (Set /A Max_Day=28)
if %f_Month%==3 (Set /A Max_Day=31)
if %f_Month%==4 (Set /A Max_Day=30)
if %f_Month%==5 (Set /A Max_Day=31)
if %f_Month%==6 (Set /A Max_Day=30)
if %f_Month%==7 (Set /A Max_Day=31)
if %f_Month%==8 (Set /A Max_Day=31)
if %f_Month%==9 (Set /A Max_Day=30)
if %f_Month%==10 (Set /A Max_Day=31)
if %f_Month%==11 (Set /A Max_Day=30)
if %f_Month%==12 (Set /A Max_Day=31)

IF %f_Day% GTR %Max_Day% (
SET /A f_Day=%f_Day%-%Max_Day%
SET /A f_Month=%f_Month%+1)

IF %f_Month% GTR 12 (
SET /A f_Month=%f_Month%-12
SET /A f_Year=%f_Year%+1)


rem YYMM_DD__HH-MM-SS__name.JPG
rem 012345678901234567
rem 012

if %f_Year% LSS 10 (
set New_FName=0%f_Year%_) else (
set New_FName=%f_Year%_)

if %f_Month% LSS 10 (
set New_FName=%New_FName:~0,2%0%f_Month%_) else (
set New_FName=%New_FName:~0,2%%f_Month%_)

if %f_Day% LSS 10 (
set New_FName=%New_FName%0%f_Day%__) else (
set New_FName=%New_FName%%f_Day%__)

if %f_Hour% LSS 10 (
set New_FName=%New_FName%0%f_Hour%-) else (
set New_FName=%New_FName%%f_Hour%-)

if %f_Min% LSS 10 (
set New_FName=%New_FName%0%f_Min%-) else (
set New_FName=%New_FName%%f_Min%-)

if %f_Sec% LSS 10 (
set New_FName=%New_FName%0%f_Sec%%f_END%) else (
set New_FName=%New_FName%%f_Sec%%f_END%)

ren %F_Name% %New_FName%.123
GoTo :EOF

:Renb
Set f_NName=%1
Set f_NewName=%f_NName:~0,-4%

ren %f_NName% %f_NewName%
GoTo :EOF
Автор: Serge2005
Дата сообщения: 24.08.2006 22:29
Kirillhome
Спасибо...но я не понимаю, что нужно сделать, чтоб он заработал.....Либо какие входящие атрибуты надо вписать? Либо где внутри надо изменить циффры? И точно здесь учитывается различное окончание вместо "name"?
Этот скрипт перебирает все файлы в папке, где лежит?
Автор: xitsa
Дата сообщения: 24.08.2006 22:30
GreaseOD
Вот еще есть страничка на которой много полезных скриптов и FAQ'ов по sed'у
tutorial.
Она на английском, но сам многое почерпнул оттуда
Автор: Serge2005
Дата сообщения: 24.08.2006 22:32
Где изменять цифры - нашел Минуты и секунды. А можно их с минусом, чтоб вычиталось? 60 минут - вычтет час? И та и та переменная от 0 до 60? Или до бесконечности?
Извините, я плохо еще разбираюсь в батниках...

Добавлено:
Увидел, конец имени любой

Добавлено:
Понял! При копировании из браузера в конец строчек добавились пробелы! Спасибо! Все прекрасно!!! Спасибо Большущее!!!!! %)

Добавлено:
Для часов и дней попробуя сам написать.....
А потом еще на вычитание времени (*кажется просто знак поменять, но ведь не прокатит!*)
Спасибо большое! Не думаю, что сам скоро справлюсь с полной задачей, буду совсем совсем благодарен за полный код...
Автор: Kirillhome
Дата сообщения: 24.08.2006 23:37
Serge2005
Собственно, было разобрано начало файла на составляющие YY DD MM HH MM SS
были заданы ещё две переменные (для сдвига минут и секунд)
Потом проверяется - не првышают ли полученные значения те, которые реально могут быть.
Время в сутках принято равным от 00:00:00 до 23:59:59.
Високосные года - не учитываются.
Был вынужден использовать двойное переименование (почему и сказал, что - нехорошо...), т.к. выполнение команды DIR "подхватывало" и новые файлы....
В последних строках добивался того, что бы цифры были в виде двух знаков.

Добавлено:
При вычитании надо будет использовать другие проверки....
Автор: ViSiToR
Дата сообщения: 25.08.2006 08:59
xitsa

Цитата:
Возможно. Если особенно у тебя действительно один линк на строку:


У меня все линк и в файле, начинаются так [no]URL=http://ссылка...[/no]

А как это применять? команду ставлю в батник, но ничего не переписывается, просто создаётся пустой файл output.txt и всё... а что такое f.sed: куда это прописывать? пробовал в батник, но не помогло.

Добавлено:
xitsa

Всё, разобрался - нужно было сделать файл f.sed, с содержимым что ты привёл в пример, а также, я не учёл тот факт, что у меня все ссылки (т.е символы URl=) находились с отступом от края строчки... так что всё теперь работает (подправил f.sed), большое спасибо!
Автор: 01MDM
Дата сообщения: 25.08.2006 11:17
1. Как проверить запущена служба или нет
Например schedule.

Конечно можно просто на всякий случай ее запустить или перезапустить, но хотелось бы покрасивее. Если служба запущена - продолжаем, если нет запускаем службу и продолжаем.

Интересует само условие.

2. Как спрятать вывод команды при запуске/останове службы. > nul не работает

Добавлено:
Или как узнать о существовании процесса? По аналогии `ps`. Может есть какие-нибудь программы с консольным интерфейсом.
Автор: GOODmen
Дата сообщения: 25.08.2006 12:16
Подскажите, как решить такую задачу - нужно выдернуть из АД некоторые группы и их пользователей с последующим сохранением в файл в красивом виде для печати?
Автор: nitrax
Дата сообщения: 25.08.2006 12:34
Добрый день.

Подскажите как запустить инсталяцию из батника, подождать завершения инсталяции и запустить другую инсталяцию.

Спасибо.
Автор: peculiar
Дата сообщения: 25.08.2006 15:41
У меня тот же вопрос как в XP/2003 прописать паузу к примеру на 40 секунд после первой команды. Задача такая одним батником по сети включит удаленный комп и после того как о включится - это примерно 40 сек - скопировать на него резервную копию. Дык вот никак не получается приостановить выполнение BAT файла после первой задачи. Как можно это решить ?

P.S. нашел решение своему вопросу -
#
утилита работает так : задаете время сколько надо на приостановление и все !
Удачки
Автор: KapralBel
Дата сообщения: 25.08.2006 15:51
peculiar
Sleep /?
Автор: Serge2005
Дата сообщения: 25.08.2006 15:53
Kirillhome
Увеличение времени:[more]@Echo off
For %%a In (*.jpg) Do @Call :Rena %%a
For %%a In (*.123) Do @Call :Renb %%a
GoTo :EOF

:Rena
Set f_Name=%1
Set f_END=%f_Name:~17%

set /A Month_pl=0
set /A Day_pl=0
set /A Hour_pl=2
set /A Min_pl=55
Set /A Sec_pl=55

IF %f_Name:~0,1%==0 (
SET /A f_Year=%f_Name:~1,1%) else (
SET /A f_Year=%f_Name:~0,2%)

IF %f_Name:~2,1%==0 (
SET /A f_Month=%f_Name:~3,1%) else (
SET /A f_Month=%f_Name:~2,2%)

IF %f_Name:~5,1%==0 (
SET /A f_Day=%f_Name:~6,1%) else (
SET /A f_Day=%f_Name:~5,2%)

IF %f_Name:~9,1%==0 (
SET /A f_Hour=%f_Name:~10,1%) else (
SET /A f_Hour=%f_Name:~9,2%)

IF %f_Name:~12,1%==0 (
SET /A f_Min=%f_Name:~13,1%) else (
SET /A f_Min=%f_Name:~12,2%)

IF %f_Name:~15,1%==0 (
SET /A f_Sec=%f_Name:~16,1%) else (
SET /A f_Sec=%f_Name:~15,2%)

SET /A f_sec=%f_Sec%+%Sec_pl%
SET /A f_Min=%f_Min%+%Min_pl%
SET /A f_Hour=%f_Hour%+%Hour_pl%
SET /A f_Day=%f_Day%+%Day_pl%
SET /A f_Month=%f_Month%+%Month_pl%

IF %f_Sec% GTR 59 (
SET /A f_Sec=%f_Sec%-60
SET /A f_Min=%f_Min%+1)

IF %f_Min% GTR 59 (
SET /A f_Min=%f_Min%-60
SET /A f_Hour=%f_Hour%+1)

IF %f_Hour% GTR 23 (
SET /A f_Hour=%f_Hour%-24
SET /A f_Day=%f_Day%+1)

if %f_Month%==1 (Set /A Max_Day=31)
if %f_Month%==2 (Set /A Max_Day=28)
if %f_Month%==3 (Set /A Max_Day=31)
if %f_Month%==4 (Set /A Max_Day=30)
if %f_Month%==5 (Set /A Max_Day=31)
if %f_Month%==6 (Set /A Max_Day=30)
if %f_Month%==7 (Set /A Max_Day=31)
if %f_Month%==8 (Set /A Max_Day=31)
if %f_Month%==9 (Set /A Max_Day=30)
if %f_Month%==10 (Set /A Max_Day=31)
if %f_Month%==11 (Set /A Max_Day=30)
if %f_Month%==12 (Set /A Max_Day=31)

IF %f_Day% GTR %Max_Day% (
SET /A f_Day=%f_Day%-%Max_Day%
SET /A f_Month=%f_Month%+1)

IF %f_Month% GTR 12 (
SET /A f_Month=%f_Month%-12
SET /A f_Year=%f_Year%+1)


rem YYMM_DD__HH-MM-SS__name.JPG
rem 012345678901234567
rem 012

if %f_Year% LSS 10 (
set New_FName=0%f_Year%_) else (
set New_FName=%f_Year%_)

if %f_Month% LSS 10 (
set New_FName=%New_FName:~0,2%0%f_Month%_) else (
set New_FName=%New_FName:~0,2%%f_Month%_)

if %f_Day% LSS 10 (
set New_FName=%New_FName%0%f_Day%__) else (
set New_FName=%New_FName%%f_Day%__)

if %f_Hour% LSS 10 (
set New_FName=%New_FName%0%f_Hour%-) else (
set New_FName=%New_FName%%f_Hour%-)

if %f_Min% LSS 10 (
set New_FName=%New_FName%0%f_Min%-) else (
set New_FName=%New_FName%%f_Min%-)

if %f_Sec% LSS 10 (
set New_FName=%New_FName%0%f_Sec%%f_END%) else (
set New_FName=%New_FName%%f_Sec%%f_END%)

ren %F_Name% %New_FName%.123
GoTo :EOF

:Renb
Set f_NName=%1
Set f_NewName=%f_NName:~0,-4%

ren %f_NName% %f_NewName%
GoTo :EOF[/more]

Уменьшение времени:[more]@Echo off
For %%a In (*.jpg) Do @Call :Rena %%a
For %%a In (*.123) Do @Call :Renb %%a
GoTo :EOF

:Rena
Set f_Name=%1
Set f_END=%f_Name:~17%

set /A Month_m=0
set /A Day_m=0
set /A Hour_m=4
set /A Min_m=50
Set /A Sec_m=50

IF %f_Name:~0,1%==0 (
SET /A f_Year=%f_Name:~1,1%) else (
SET /A f_Year=%f_Name:~0,2%)

IF %f_Name:~2,1%==0 (
SET /A f_Month=%f_Name:~3,1%) else (
SET /A f_Month=%f_Name:~2,2%)

IF %f_Name:~5,1%==0 (
SET /A f_Day=%f_Name:~6,1%) else (
SET /A f_Day=%f_Name:~5,2%)

IF %f_Name:~9,1%==0 (
SET /A f_Hour=%f_Name:~10,1%) else (
SET /A f_Hour=%f_Name:~9,2%)

IF %f_Name:~12,1%==0 (
SET /A f_Min=%f_Name:~13,1%) else (
SET /A f_Min=%f_Name:~12,2%)

IF %f_Name:~15,1%==0 (
SET /A f_Sec=%f_Name:~16,1%) else (
SET /A f_Sec=%f_Name:~15,2%)

SET /A f_sec=%f_Sec%-%Sec_m%
SET /A f_Min=%f_Min%-%Min_m%
SET /A f_Hour=%f_Hour%-%Hour_m%
SET /A f_Day=%f_Day%-%Day_m%
SET /A f_Month=%f_Month%-%Month_m%

IF %f_Sec% LSS 0 (
SET /A f_Sec=%f_Sec%+60
SET /A f_Min=%f_Min%-1)

IF %f_Min% LSS 0 (
SET /A f_Min=%f_Min%+60
SET /A f_Hour=%f_Hour%-1)

IF %f_Hour% LSS 0 (
SET /A f_Hour=%f_Hour%+24
SET /A f_Day=%f_Day%-1)

if %f_Month%==1 (Set /A Max_Day=31)
if %f_Month%==2 (Set /A Max_Day=28)
if %f_Month%==3 (Set /A Max_Day=31)
if %f_Month%==4 (Set /A Max_Day=30)
if %f_Month%==5 (Set /A Max_Day=31)
if %f_Month%==6 (Set /A Max_Day=30)
if %f_Month%==7 (Set /A Max_Day=31)
if %f_Month%==8 (Set /A Max_Day=31)
if %f_Month%==9 (Set /A Max_Day=30)
if %f_Month%==10 (Set /A Max_Day=31)
if %f_Month%==11 (Set /A Max_Day=30)
if %f_Month%==12 (Set /A Max_Day=31)

IF %f_Day% LSS 1 (
SET /A f_Day=%f_Day%+%Max_Day%
SET /A f_Month=%f_Month%-1)

IF %f_Month% LSS 1 (
SET /A f_Month=%f_Month%+12
SET /A f_Year=%f_Year%-1)


rem YYMM_DD__HH-MM-SS__name.JPG
rem 012345678901234567
rem 012

if %f_Year% LSS 10 (
set New_FName=0%f_Year%_) else (
set New_FName=%f_Year%_)

if %f_Month% LSS 10 (
set New_FName=%New_FName:~0,2%0%f_Month%_) else (
set New_FName=%New_FName:~0,2%%f_Month%_)

if %f_Day% LSS 10 (
set New_FName=%New_FName%0%f_Day%__) else (
set New_FName=%New_FName%%f_Day%__)

if %f_Hour% LSS 10 (
set New_FName=%New_FName%0%f_Hour%-) else (
set New_FName=%New_FName%%f_Hour%-)

if %f_Min% LSS 10 (
set New_FName=%New_FName%0%f_Min%-) else (
set New_FName=%New_FName%%f_Min%-)

if %f_Sec% LSS 10 (
set New_FName=%New_FName%0%f_Sec%%f_END%) else (
set New_FName=%New_FName%%f_Sec%%f_END%)

ren %F_Name% %New_FName%.123
GoTo :EOF

:Renb
Set f_NName=%1
Set f_NewName=%f_NName:~0,-4%

ren %f_NName% %f_NewName%
GoTo :EOF[/more]
Вроде работает, но я не уверен в правильности.....
И еще....при копировании с форума появляются пробелы в конце каждой строчки...
Автор: RussianNeuroMancer
Дата сообщения: 25.08.2006 15:55
nitrax

Код:
Setup1.exe
Setup2.exe
Автор: nitrax
Дата сообщения: 25.08.2006 15:58
Да я так и делал, но появляется 2 запущенных инстяляшки одновременно.
Автор: Kirillhome
Дата сообщения: 25.08.2006 16:13
Serge2005

Цитата:
И еще....при копировании с форума появляются пробелы в конце каждой строчки...

Об этом писалось в начале топика. Мне казалось, что это даже есть в шапке....

С увеличением, похоже, всё верно, а с уменьшением - надо менять

Код:
if %f_Month%==1 (Set /A Max_Day=31)
if %f_Month%==2 (Set /A Max_Day=28)
if %f_Month%==3 (Set /A Max_Day=31)
if %f_Month%==4 (Set /A Max_Day=30)
if %f_Month%==5 (Set /A Max_Day=31)
if %f_Month%==6 (Set /A Max_Day=30)
if %f_Month%==7 (Set /A Max_Day=31)
if %f_Month%==8 (Set /A Max_Day=31)
if %f_Month%==9 (Set /A Max_Day=30)
if %f_Month%==10 (Set /A Max_Day=31)
if %f_Month%==11 (Set /A Max_Day=30)
if %f_Month%==12 (Set /A Max_Day=31)

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.