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

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

Автор: JohnRD
Дата сообщения: 04.04.2007 14:01
igor_andreev
скажите а может sed.exe не в каждую строку вставлять а найти строку по кртерию
aaaa=????
и заменить на aaaa=cccc
в файле много сторок но заменить надо одну

подскажите что за переменные
s/^.*$/<a href="http:\/\/&">&<\/a>/
--------
^

как применить в моем случае

спасибо
Автор: igor_andreev
Дата сообщения: 04.04.2007 14:18
JohnRD
Я тут тебе не сильный советчик, потому как sed пользуюсь старой, еще 16-битной(синтаксис временами разнится с sed от gnu). Что в общем не рекомендуется, под виндовс лучше пользоваться нормальными 32-битными утилитами. Ну бзик у меня такой
Вот в таком test.txt

Код:
bbbb=dddd
aaaa=xxxx
eeee=ffff
Автор: StanislavG
Дата сообщения: 04.04.2007 15:18
igor_andreev

Цитата:
А знаешь, почему твой батник периодически сбоит и мурыжышься ты с ним уже кажется месяца три-четыре? Потому что он некрасивый, мне дык сразу не понравился

Этот батник проработал 2 месяца и вышла у него только одна проблема которую благодаря Elroir я решил. И вообще я думаю лучше пологаться на забытое старое и проверенное.

Цитата:
Я очень благодарен Elroir за помощь оказанную им мне.



Автор: igor_andreev
Дата сообщения: 04.04.2007 16:11

Цитата:
Этот батник проработал 2 месяца

Он уже два месяца назад не собрал у тебя файлы за пред. день Эт я помню, потому-что в ответ и предложил простой и ВСЕГДА корректно работающий способ с date-1 в vbs. Ну хозяин-барин, делай как нравится.
Автор: ingener
Дата сообщения: 04.04.2007 16:59
не подскажете как проверить в бат файле доступность фтп сервера. проверка на пинг не интересна т к фтп сервис на удаленной машине может быть выключен или сбойнул. это первое условие в моем батнике. в зависимости от результата предполагается выгружать файлы с помощью ncFTPput.exe или ничего не делать, а ждать следующего запуска батника через час.
Автор: igor_andreev
Дата сообщения: 04.04.2007 17:52
ingener
ncftpput(да и любой фтп-клиент) и так ничего делать не будет, если сервер недоступен А прошло у ncftpput все нормально или нет - смотри хэлп к ней.

Цитата:

ncftpput returns the following exit values:

0 Success.
1 Could not connect to remote host.
2 Could not connect to remote host - timed out.
4 Transfer failed.
5 Transfer failed - timed out.
6 Directory change failed.
7 ...
8 ...
и так далее...

То есть, если errorlevel не ноль, то надо через час запуститься.
Автор: JohnRD
Дата сообщения: 04.04.2007 19:36
igor_andreev спасибо все работает
остановился на версии 1.5 работает отлично

есть еще вопрос
есть такой cmd

Код:
sc sdset bits "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" >%temp%\SetServiceObjectSecurity.log
sc sdset wuauserv "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)
(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" >>%temp%\SetServiceObjectSecurity.log
Автор: Elroir
Дата сообщения: 04.04.2007 20:52
JohnRD
Какой errorlevel возвращают эти команды (sc sdset ...), когда запускаются локально?
Автор: ingener
Дата сообщения: 04.04.2007 21:24
подскажите как сделать такой вывод :
04.04.2007 21:22 remote host not respond !
что нужно написать после echo.

Автор: Elroir
Дата сообщения: 04.04.2007 21:41
ingener

Код:
echo %date% %time:~0,5% remote host not respond !
Автор: GORA2
Дата сообщения: 05.04.2007 08:03
KapralBel
NIKZZZZ
А литературу на русском по VBS посоветовать можете? С аглицким у меня туго.
Автор: NIKZZZZ
Дата сообщения: 05.04.2007 08:27
Вопрос - можно ли средствами DOS проверить завершения процесса?

Например:

start notepad.exe
:wait
некая команда
if %errorlevel%==0 goto wait
echo редактирование окончено

start /wait notepad.exe не предлагать!




Автор: ingener
Дата сообщения: 05.04.2007 08:58
подскажите как узнать с каким кодом закончилось выполнение программы. например для ncftpput таких кодов 12.
Автор: NIKZZZZ
Дата сообщения: 05.04.2007 09:11
GORA2

Цитата:
А литературу на русском по VBS

На счет нормальной документации не могу посоветовать, ссылки встречал - но они оказывались битыми.
Нашел у себя кое-что в мусоре, посмотри.
И зайди сюда, набери в поиске VBS или WSH - может найдешь что-нибудь полезное.


Автор: KapralBel
Дата сообщения: 05.04.2007 09:14
ingener

Код:
@Echo Off
ncftpput -....

Set ELevel=%ErrorLevel%
If %ELevel == 10 GoTo :Cod10
If %ELevel == 9 GoTo :Cod9
или
GoTo :Cod%ErrorLevel%
Автор: igor_andreev
Дата сообщения: 05.04.2007 09:16
ingener
Да тебе все двенадцать не нужны, достаточно знать ноль или не ноль

Код:
@echo off
ncftpls -1 ftp://ftp.rarlab.com/
if %errorlevel%==0 (echo all ok) else echo fig tam
Автор: NIKZZZZ
Дата сообщения: 05.04.2007 09:17
ingener

Цитата:
с каким кодом закончилось выполнение программы.


ncftpput
echo Return code = %errorlevel%
pause


Автор: igor_andreev
Дата сообщения: 05.04.2007 09:18
KapralBel
Страницу не обновил - не увидел, что ты уже ответил Хренасе, сколько народу тут оказывается...
Автор: Elroir
Дата сообщения: 05.04.2007 09:24
NIKZZZZ

Цитата:
Вопрос - можно ли средствами DOS проверить завершения процесса?

Можно проверить, находится ли процесс все еще в памяти или нет:

Код:
tasklist | find /i "notepad">nul
if %errorlevel%==0 goto wait
Автор: NIKZZZZ
Дата сообщения: 05.04.2007 10:01
Elroir
Спасибо, проверил. Прекрасно работает в паре с taskkil, что и хотелось.
Задача была в том, что-бы убить процесс, если он завис.

Автор: cluster
Дата сообщения: 05.04.2007 11:33
Ребят, а как лог от нескольких команд в *.cmd писать в один файл? Типа:

Код: Net stop "helpsvc" > C:\HaspRestarter.log
Net start "helpsvc" > C:\HaspRestarter.log
Автор: KapralBel
Дата сообщения: 05.04.2007 11:46
cluster

Код: Net stop "helpsvc" > C:\HaspRestarter.log
Net start "helpsvc" >> C:\HaspRestarter.log
Автор: GORA2
Дата сообщения: 05.04.2007 13:45
NIKZZZZ
Спасибо за литературу, почитаю.
А что там у Вас за файл ntldr.7z? Открываю архив а в нем скрытый файл без расширения. Что это такое?
Автор: NIKZZZZ
Дата сообщения: 05.04.2007 18:08
GORA2

Цитата:
А что там у Вас за файл ntldr.7z

Случайно попал, отношения не имеет.

Автор: netman
Дата сообщения: 06.04.2007 06:51
Помогите гуру...

Формат вывода now.exe Fri Apr 06 07:43:41 2007

Хочу выципить первую субботу месяца . Как сделать?
Вот накропал, все вроде работает:когда номер дня месяца больше семи то назначается ключик %copyday% + когда меньше семи дней и попадает на субботу то назначается %copyfull%.

А вот как бы сделать так ,что бы при дне месяца меньше 7 и когда не попадает на субботу ставился бы %copyday% ?????


for /F "eol= tokens=1,2,3,4,5" %%a in ('now.exe') DO (echo %%a %%b %%c %%d %%e
set WEEK=%%a
set MONTH=%%b
set DAY=%%c
set TIME=%%d
set YEAR=%%e
)

if %DAY% GTR 7 (set copyswitch=%copyday%) else (if %WEEK%==Sat set copyswitch=%copyfull%)

Заранее всем спасибо!
Все разобрался.Надо добавить просто set copyswitch=%copyday% перед if.

Автор: GORA2
Дата сообщения: 06.04.2007 07:23
Нужна помощь!
Многие наверно знают про утилиту nircmdc и два ее ключа qbox, qboxcom позволяющие вывести окно с двумя кнопками.
А как при запуске ее из батника получить назад результат (какая кнопка нажата)? Сделал так:
Код: @echo off
setlocal enabledelayedexpansion
set Button=No
nircmdc qboxcom "Нажмите любую кнопку" "Тест нажатой кнопки" execmd "echo Yes>Button.txt"
nircmdc wait 1
IF exist Button.txt del Button.txt & set Button=Yes
echo Button: "!Button!"
pause
exit
Автор: Aizek1
Дата сообщения: 06.04.2007 08:52
ошибки в скрипте "Использование даты на день раньше чем сегодня"
http://forum.ru-board.com/topic.cgi?forum=62&topic=6156&start=1120#7
в вин 2003 неверно рассчитается дата при системных датах
01.01.2007 - выдается 31.00.2007
первый день любого месяца - выдается последний день текущего месяца но сам месяц будет предыдущим. 01.02.2007 - выдается 28.01.2007
с 1 по 11 октября, ноября и декабря. - 02.11.2007 - выдается 1.11.2007 отсутствует нолик

переписал скрипт так:

Код:
set T_Date=%DATE%
IF %T_DATE:~0,1%==0 (
SET /A T_DAY=%T_DATE:~1,1%) else (
SET /A T_DAY=%T_DATE:~0,2%)

IF %T_DATE:~3,1%==0 (
SET /A T_MONTH=%T_DATE:~4,1%) else (
SET /A T_MONTH=%T_DATE:~3,2%)

SET /A T_YEAR=%T_DATE:~6,4%

SET /A T_DAY=%T_DAY%-14

:rc
IF %T_DAY% LEQ 0 (
SET /A T2_DAY=%T_DAY
SET /A T_DAY=0
SET /A T_MONTH=%T_MONTH%-1) else (
SET /A T2_DAY=0)

if %T_DAY%==0 (
if %T_MONTH%==1 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==2 (Set /A T_Day=%T2_DAY%+28)
if %T_MONTH%==3 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==4 (Set /A T_Day=%T2_DAY%+30)
if %T_MONTH%==5 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==6 (Set /A T_Day=%T2_DAY%+30)
if %T_MONTH%==7 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==8 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==9 (Set /A T_Day=%T2_DAY%+30)
if %T_MONTH%==10 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==11 (Set /A T_Day=%T2_DAY%+30)
if %T_MONTH%==12 (Set /A T_Day=%T2_DAY%+31)
if %T_MONTH%==0 (
set /A T_YEAR=%T_YEAR%-1
SET /A T_MONTH=12
set /A T_DAY=%T2_DAY%+31)
)
)

if %T_DAY% LEQ 0 goto rc

if %T_MONTH% LSS 10 (
if %T_DAY% LSS 10 (
Set dt3=0%t_Day%.0%t_Month%.%t_Year%)
else Set dt3=%t_Day%.0%t_Month%.%t_Year%)
else (
if %T_DAY% LSS 10 (
Set dt3=0%t_Day%.%t_Month%.%t_Year%)
else Set dt3=%t_Day%.%t_Month%.%t_Year%)

echo %dt3%
Автор: NIKZZZZ
Дата сообщения: 06.04.2007 09:35
GORA2

Цитата:
А как при запуске ее из батника получить назад результат (какая кнопка нажата)?


Код: @echo off
set Button=No
nircmd qboxcom "Press any key" "Key test" xx >nul
if %errorlevel%==0 set Button=Yes
echo Key - %Button%
pause
Автор: GORA2
Дата сообщения: 06.04.2007 11:21
NIKZZZZ

Цитата:
@echo off
set Button=No
nircmd qboxcom "Press any key" "Key test" xx >nul
if %errorlevel%==0 set Button=Yes
echo Key - %Button%
pause
Ваш вариант не сработал. При нажатии Да - выскакивает окно с версией nircmd и после его закрытия показывает Yes. При нажатии Нет все равно показывает Yes.
Замена nircmd на nircmdс вроде работает, но... Что означает у Вас xx ? Может там что то надо прописать т.к. там по синтаксису должна быть команда nircmd?
Автор: NIKZZZZ
Дата сообщения: 06.04.2007 11:37
GORA2
XX или что-нубудь еще (HELP например) - команда, которую nircmd не понимает. И там должен быть nircmdс, просто он у меня переименован. При исполнении nircmdс с такой командой он выдает свой хелп, и устанавливает %errorlevel% в ноль.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Сбой активации XP sp2


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