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

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

Автор: KapralBel
Дата сообщения: 03.02.2006 10:39
Etalon

Цитата:

Подстановка переменной среды может быть расширена следующим образом:

%PATH:str1=str2%

расширит действие переменной среды PATH, заменяя каждое вхождение "str1" в
расширенном результате на "str2". "str2" может быть пустой строкой для
эффективного удаления вхождений "str1" из расширенного вывода. "str1" может
начинаться со звездочки, и в этом случае это будет соответствовать любому
началу расширенного вывода до первого вхождения оставшейся части "str1".

Проблема в том что если использовать вместо str1 путь C:\Program то поиск будет только части до обратного слэша \

Добавлено:
VelDmi

Код:
@Echo Off
For /F "delims=#" %%a In (OemInfo.ini) Do Call :_P1 %%a
Echo WorkDate: %dtWork%
GoTo :EOF

:_P1
Set Str1=%*
Set Str2=%Str1:~0,10%
If /I "%STR2%"=="LINE1=LAST" Call :_p2 %str1%
GoTo :EOF

:_P2
For /F "tokens=4" %%a In ('Echo %*') Do Set dtWork=%%a
GoTo :EOF
Автор: Etalon
Дата сообщения: 03.02.2006 12:06
Конструкция
%PATH:str1=str2%
Работает только если str1 и str2 явно заданы, а нужно str1 в виде переменной окружения передать
Автор: KapralBel
Дата сообщения: 03.02.2006 12:32
Etalon

Код:
@Echo Off
Set str1=C:\Windows
Echo Echo %%Path:%str1%=Винда%% ^>^>File.txt >>Temp.Cmd
Call Temp.Cmd
Автор: Etalon
Дата сообщения: 03.02.2006 14:14
Переменно %BasePath% в конце где-то пробел прицепляется, а посему не работает
Но идея конечно интересная
Автор: KapralBel
Дата сообщения: 03.02.2006 14:19
Etalon
Когда ты копируешь текст данного батничка, в конце каждой строчки вставляется пробел.
Проверь
Автор: Etalon
Дата сообщения: 03.02.2006 14:45
Да заметил, спасибо
Автор: Psih
Дата сообщения: 03.02.2006 17:42
Уважаемые, а есть возможность проделать следующее (с помощью bat/cmd файла):
Запустить 1.ехе, через время "n" (в секундах) запустить 2.ехе, через время "m" (сек) запустить 3.ехе, закрыть окно командной строки?
Автор: slech
Дата сообщения: 03.02.2006 20:17
Еть вопросик и просьба

1.Есть необходимость авторизироваться на сайте, а после авторизации скачать файл, предварительно проверив дату рядом с ним и время, и если файл сегодняшний, то можно скачивать, если нет то прекратить оперецию и сказать что файл несвеж(по одной и тойже ссылке, но там php видимо ссылка меняется).

2.Затем заархвировать

rar a -df -m5 w.rar w.xls

3.а потом разослать на мыло.

1. Незнаю как сделать, может с помощью скрипта на php ?
2. Знаю
3. На предыдущих страницах прочитал про smtpsend и smtpsend - думаю разберусь.

Если несложно, направьте меня в нужном напрвлении.

Заранее спасибо.
Автор: VelDmi
Дата сообщения: 04.02.2006 02:11
KapralBel
Спасибо друг. Твой код блестяще работает!!!
Только вот с этими EOF не знал как вставить строки в основной батник. Пришлось его сделать отдельным файлом, а из основного запускать Call Date.cmd.
Автор: hacsoft
Дата сообщения: 04.02.2006 21:45
Psih
Конечно да, почитай тему и найдешь, как сделать задержку на n секунд.
Автор: RussianNeuroMancer
Дата сообщения: 04.02.2006 22:00
slech
Цитата:
1.Есть необходимость авторизироваться на сайте, а после авторизации скачать файл, предварительно проверив дату рядом с ним и время, и если файл сегодняшний, то можно скачивать, если нет то прекратить оперецию и сказать что файл несвеж(по одной и тойже ссылке, но там php видимо ссылка меняется).

Цитата:
1. Незнаю как сделать, может с помощью скрипта на php ?
Если этот язык программирования для тебя наиболее знаком, то проще всего тогда будет на нём писать, если есть другие, то тогда смотри сам: в каком лучше разбираешься (из современных) на том и пиши.
Автор: slech
Дата сообщения: 05.02.2006 01:44
Надо разослать письма на 45 адресов, mail.ru позволяет за раз не более 15, поэтому получается минимум 3 заза.

Программа sendEmail-v152.zip

Строчка вида
sendEmail -f xx@mail.ru -t mail1@mail.ru -u %date -m -s smtp.mail.ru -o timeout=4 -xu user -xp pass -a xx.rar -l ss.txt

Так вот в чём вопрос.
Из файла адреса программа вроде брать не умеет, остаётся их подставлять из какогото файла.
Например так
set mail1=1-ая строчка файла mail.txt
set mail2=2-ая строчка файла mail.txt
..................................................и тд.

А далее
sendEmail -f xx@mail.ru -t %mail1% -u %date -m -s smtp.mail.ru -o timeout=4 -xu user -xp pass -a xx.rar -l ss.txt
sendEmail -f xx@mail.ru -t %mail2% -u %date -m -s smtp.mail.ru -o timeout=4 -xu user -xp pass -a xx.rar -l ss.txt

Как это оформить в один батник ?
Автор: vu1tur
Дата сообщения: 05.02.2006 04:52
slech
for /F %%a in ('type mail.txt') do sendEmail -f xx@mail.ru -t %%a -u %date .....
Автор: slech
Дата сообщения: 05.02.2006 11:44
vu1tur
Спасибо, работает.
Автор: slech
Дата сообщения: 06.02.2006 00:12
Кстати кто знает как батник запустить в фоновом режиме ?
Программа hiderun не справляется с батниками.
Автор: Abrosov
Дата сообщения: 06.02.2006 06:04
такая задача наверное уже возникала,
но все-таки

имеется диск c:
имеется список файлов с образцового диска
надо убрать с диска c: всё лишнее, руководствуясь списком
пробовал сделать через findstr,
но так и не понял, как узнать что файла НЕТ в списке
Автор: KapralBel
Дата сообщения: 06.02.2006 10:24
VelDmi
GoTo :EOF - это переход на конец файла
Из подпрограммы оставляешь EOF
Из основной - ставишь GoTo :_SetTime вместо GoTo :EOF
и дальше

Код:
:_SetTime
Set dtCurrent=%date%
Set dtWork=03.02.2006
IF /i %dtWork% GTR %dtCurrent% Date %dtWork%
Автор: evle
Дата сообщения: 06.02.2006 10:25
slech

Цитата:
Кстати кто знает как батник запустить в фоновом режиме ?

Скрыть окно можно с помощью cmdow
Автор: KapralBel
Дата сообщения: 06.02.2006 11:03
Abrosov
Анализируешь значение ErrorLevel
0 - найдено
1 - не найдено
Автор: MonsterMax
Дата сообщения: 06.02.2006 11:16
Помогите разобраться с проблемой: (уже спрашивал, но ответа не получил)

Если не знать точного пути к Opera - как можно в скрипт его поставить зная что ветка в реестре?:

Код: Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Netscape Navigator\Opera\Main]
"Install Directory"="C:\\Program Files\\internet\\Opera"
"Plugins Directory"="C:\\Program Files\\internet\\Opera\\Program\\Plugins"
Автор: slech
Дата сообщения: 06.02.2006 11:54
evle
Спасибо, помогло.
Автор: KapralBel
Дата сообщения: 06.02.2006 13:53
MonsterMax

Код:
@Echo Off
Set InstDir=""
regedit /ea Temp.reg HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Netscape Navigator\Opera\Main
FOR /F "tokens=1,2* delims==" %%a in (Temp.reg) do Call :_P %%a %%b
Echo Opera in: %InstDir%
GoTo :EOF

:_P
If /i %1=="Install Directory" Set InstDir=%2
GoTo :EOF
Автор: MonsterMax
Дата сообщения: 06.02.2006 14:14
Огромное спасибо что отреагировал KapralBel, но не мог бы ты просветить меня комментариями что из этих операндов что делает? Просто неохота втупую копировать скрипт и думать какой я умный. Хочется разобраться что к чему.

И куда мне вставить этот скрипт в моем скрипте?

Код:
@cls
@title Opera Internet Browser only with profile backup
@set "RAR=%PROGRAMFILES%\winrar\"
@set "SOURCE="%PROGRAMFILES%\internet\Opera""
@set "DEST=e:\temp\"
@set "NAME=opera_"
@set "PACK_LVL=5"
@set "DATE=YYYY.MM.DD-HH.MM.SS"
@If not Exist %SOURCE%\Profile (
@"%RAR%rar" a "-ag%DATE%" -r -k -ad -ep1 -rr3p -m%PACK_LVL% "%DEST%%NAME%" %SOURCE%
) Else (
echo.
@echo !!! Нечего резервировать !!!
echo.
pause
)
exit.
Автор: KapralBel
Дата сообщения: 06.02.2006 14:23
MonsterMax

Код:
@Echo Off
Set InstDir=""
regedit /ea Temp.reg HKEY_CURRENT_USER\Software\Far
FOR /F "tokens=1,2* delims==" %%a in (Temp.reg) do Call :_P %%a %%b
GoTo :_Next

:_P
If /i %1=="Install Directory" Set InstDir=%2
GoTo :EOF

:_Next
Set SOURCE=%InstDir%

@cls
@title Opera Internet Browser only with profile backup
@set "RAR=%PROGRAMFILES%\winrar\"
REM @set "SOURCE="%PROGRAMFILES%\internet\Opera""
@set "DEST=e:\temp\"
@set "NAME=opera_"
@set "PACK_LVL=5"
@set "DATE=YYYY.MM.DD-HH.MM.SS"
@If not Exist %SOURCE%\Profile (
@"%RAR%rar" a "-ag%DATE%" -r -k -ad -ep1 -rr3p -m%PACK_LVL% "%DEST%%NAME%" %SOURCE%
) Else (
@color 0A

echo.
@echo !!! Нечего резервировать !!!
echo.
pause
)
exit.

Автор: MonsterMax
Дата сообщения: 06.02.2006 14:42
Чего то не то - начинает архивировать все что нашел в корне того каталога из которого был запущен.
Автор: KapralBel
Дата сообщения: 06.02.2006 14:51
MonsterMax
Сорри, у меня Опера не установлена, поэтому ключ Install Directory я создавал в ветке ФАРа и при размещении поста забыл поправить

Код:
@Echo Off
Set InstDir=""
regedit /ea Temp.reg HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Netscape Navigator\Opera\Main
FOR /F "tokens=1,2* delims==" %%a in (Temp.reg) do Call :_P %%a %%b
GoTo :_Next

:_P
If /i %1=="Install Directory" Set InstDir=%2
GoTo :EOF

:_Next
Set SOURCE=%InstDir%


@cls
@title Opera Internet Browser only with profile backup
@set "RAR=%PROGRAMFILES%\winrar\"
REM @set "SOURCE="%PROGRAMFILES%\internet\Opera""
@set "DEST=e:\temp\"
@set "NAME=opera_"
@set "PACK_LVL=5"
@set "DATE=YYYY.MM.DD-HH.MM.SS"
@If not Exist %SOURCE%\Profile (
@"%RAR%rar" a "-ag%DATE%" -r -k -ad -ep1 -rr3p -m%PACK_LVL% "%DEST%%NAME%" %SOURCE%
) Else (
@color 0A

echo.
@echo !!! Нечего резервировать !!!
echo.
pause
)
exit.
Автор: MonsterMax
Дата сообщения: 06.02.2006 15:11

Код: H:\>Set InstDir=""

H:\>regedit /ea Temp.reg HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Netscape Navigator
\Opera\Main

H:\>FOR /F "tokens=1,2* delims==" %a in (Temp.reg) do Call :_P %a %b
Не удается найти файл Temp.reg.

H:\>GoTo :_Next

H:\>Set SOURCE=""

H:\>REM @set "SOURCE="C:\Program Files\internet\Opera""
"\Profile" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


Creating archive e:\temp\opera_2006.02.06-16.09.58.rar

Adding magic\About.dll OK
Adding magic\blacklst.txt OK
Автор: KapralBel
Дата сообщения: 06.02.2006 15:15
MonsterMax
Укажи тогда везде C:\Temp.reg
Автор: MonsterMax
Дата сообщения: 06.02.2006 15:15
указывал через %TEMP%\Temp.reg
все равно не идет


Код:
H:\>Set InstDir=""

H:\>regedit /ea c:\Temp\Temp.reg HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Netscape N
avigator\Opera\Main

H:\>FOR /F "tokens=1,2* delims==" %a in (c:\Temp\Temp.reg) do Call :_P %a %b
Не удается найти файл c:\Temp\Temp.reg.

H:\>GoTo :_Next

H:\>Set SOURCE=""

H:\>REM @set "SOURCE=C:\Program Files\internet\Opera"
"\Profile" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Автор: KapralBel
Дата сообщения: 06.02.2006 15:23
MonsterMax
Выполни только такой батничек

Код:
regedit /ea c:\Temp\Temp.reg HKEY_LOCAL_MACHINE\SOFTWARE\Netscape\Netscape N
avigator\Opera\Main
Dir C:\Temp\*.reg

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

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


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