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

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

Автор: wolf0425
Дата сообщения: 09.06.2010 21:23

Цитата:
да, я уже нашел
упс, не успел вовремя поправить
ну и я немного с запасом там прихватил...
Автор: WesternLight
Дата сообщения: 09.06.2010 21:26
wolf0425, спасибо! завтра буду переписывать код... интересно, а можно как-то с помощью bat проверять наличие в реестре определенной записи, например, вышеприведенных параметров? нужно для того, чтобы батник проверял какой шрифт выбран по умолчанию и если не lucida, тогда применял reg-файл...
Автор: wolf0425
Дата сообщения: 09.06.2010 21:44

Цитата:
а можно как-то с помощью bat проверять наличие в реестре определенной записи, например, вышеприведенных параметров?
reg query /?
только не уверен что на win2k reg.exe уже был, как бы не начиная с ХР утилита.

но в худшем случае - можно же старыь regedit.exe экспортировать HKEY_CURRENT_USER\Console в формате regedit4 и пропарсить как текст...
Автор: barsikline
Дата сообщения: 10.06.2010 00:46
wolf0425


Цитата:
ну удобнее же когда этот просто путь - просто видно на скриншоте, чем гадать по кракозябрам.
и ls -l скомандуй серверу - хоть увидим что он сам про русские имена думает.





Цитата:
судя по принтскрину у тебя не срабатывает cd в первом вызове ftp
ты бы проверил, что туда зайти можно хотя бы вручную


Напрямую туда заходит, это я проверял. Тут проблема именно в 2-х пробелах в имени каталога "Инструкции и документация". Проверял если бы, к примеру, стояло просто "Инструкция документация", то все ок. Что можно сделать?
Автор: AkeHayc
Дата сообщения: 10.06.2010 06:12
Вот строчка из файла:
Сенчевская; Вера Алексеевна;    Главный специалист по опер.учету;    258-44-44, 266-44-44, вн. 128;    8 701 739 02 91;    finance@globalair-kz.com;    11.06.1946;    258-42-59;    293 52 17;

Автор: Mark_Titov
Дата сообщения: 10.06.2010 08:16

Цитата:
Mark_Titov
Цитата:Как сделать так что бы он при первом запуске создавая папку не отсылыл пустое письмо
а проверить что mes_log или как там называлась переменная с именем лога в том куске кода что ты поскипал во что-то установлена при поиске последнего Monthly-report - религия не позволяет?

wolf0425, не получается, помоги уже все варианты перепробовал - все равно при первом запуске на создание пустого отчета идет...
Автор: sarti
Дата сообщения: 10.06.2010 09:00
Как должен выглядеть батник, проверяющий состояние определённых (известных) служб и, в случае необходимости, стартующий их?
Т.е. по-русски: ЕСЛИ статус %servicename% STOPPED - запустить, если же STARTED - ничего не делать, перейти к следующему %servicename% и выполнить такую же проверку.
Всего сервисов 3.




Спасибо.
Автор: res2001
Дата сообщения: 10.06.2010 09:18
sarti
можно и не проверять текущий статус, делай
net start имя службы - если не запущена - запустится, иначе ничего не произойдет.
Автор: wolf0425
Дата сообщения: 10.06.2010 11:27
sarti
Цитата:
Т.е. по-русски: ЕСЛИ статус %servicename% STOPPED - запустить, если же STARTED - ничего не делать, перейти к следующему %servicename% и выполнить такую же проверку.

sc start чегонадо
проверять запущены ли, если всё равно стартовать - смысла особого нет, но можно:
sc query NoIPDUCService |findstr /i /r /b /c:" *state.*stopped" >nul && sc start NoIPDUCService

Mark_Titov
Цитата:
уже все варианты перепробовал
пока не вижу что ты воспользовался предыдущим советом. или хотя бы попытался.
Автор: mouser
Дата сообщения: 10.06.2010 11:30
имеется папка HISTORY в которой много ПАПОК (*) имеющие файлы

нужно убить рекурсивно все папки которые старше 10 дней
Автор: wolf0425
Дата сообщения: 10.06.2010 11:46
mouser имена папок произвольные, количество папок на день неизвестно?
тогда смотри шапку темы, там есть пример как ветвиться по разнице в дате с привлечением vbs.

Автор: us0r
Дата сообщения: 10.06.2010 11:47
Mark_Titov
Ты прикалываешься?

Код: set "%mes_log%"="path_to_file"
IF EXIST %mes_log% goto :ein
goto :zwei
Автор: wolf0425
Дата сообщения: 10.06.2010 11:48
us0r
Цитата:
Ты прикалываешься?
он не прикалывается - он ленится, думать и учиться не хочет, хочет чтоб за него всё писали.
Автор: us0r
Дата сообщения: 10.06.2010 12:00
wolf0425
Мдееее... Нет, я бы понял, если бы у человека физически нехватало времени...
Mark_Titov
Ты одмином на оффисе работаешь?
Автор: BagaBaga
Дата сообщения: 10.06.2010 12:01
Возможно ли на bat-файлах создать "недо-cron", который работал бы по следующей схеме (последовательного "запускальщика задач"):

1. есть некоторая директория, которую он мониторит
2. если директория пуста (нет файлов), он ничего не делает, просто начнет опрос еще раз "несколько погодя", допустим, через минуту
3. если в директории есть файлы, берет любой (с некоторым именем, допустим, job1) и запускает его на выполнение (пусть запуском будет call c:\job1.bat). (Файл-метку перед запуском удаляет) Этот job1 может завершиться нормально, либо с сообщением об ошибке, например math overflow. Любое завершение job1 не должно прекратирь работу планировщика. По прекращении работы (успешной или по ошибке) задания планировщик должен взять следующую метку на обработку. Если метки нет, то п.2.
Автор: ComradG
Дата сообщения: 10.06.2010 12:01
Не зря меня били ногами! От идеи создания ярлыка я отказался - в любом случае вызывается wscript.exe, т.е. тему действительно можно закрывать
Автор: sarti
Дата сообщения: 10.06.2010 12:11
res2001
wolf0425

Спасибо!
Автор: us0r
Дата сообщения: 10.06.2010 12:14
sarti
Проверь через SC QUERY
(Тут только идея- код подлежит проверке)

Код: set /p servicename=
SC QUERY %servicename% | SET /P STAT= && IF /I "%STAT%"=="RUNNING" GOTO :EOF
SC START %servicename%
Автор: res2001
Дата сообщения: 10.06.2010 12:17
BagaBaga
Ну дык и делай как написал, только для запуска батников использую start или просто вызывай c:\job1.bat, чтоб в другом окне запускались и не влияли на родителя.
Как сделать паузу в итерациях здесь не однократно писалось, например пингом.
Автор: us0r
Дата сообщения: 10.06.2010 12:27
BagaBaga
Большой недокрон:

Код: setlocal
REM markfile можно оставить без расширения
REM markfile должен содержать имя запускаемого батнега
set /p workdir="Рабочая директория: "
:timer
ping -l 1 -n 6000 127.0.0.1 > nul
IF EXIST markfile goto :run
goto :timer
:run
findstr /c:batname markfile | start "" /wait %тут вроде бы должна быть строка переданная по конвееру%
del /q /f markfile
goto :timer
endlocal
Автор: wolf0425
Дата сообщения: 10.06.2010 12:47
BagaBaga, по моему ты что-то такое хочешь:

Код: :timer
for %%a in (c:\scandir\*) do del "%%~fa" & start "" "c:\cmd_dir\%%~na.cmd"
ping -n 6001 127.0.0.1 > nul
goto :timer
Автор: BagaBaga
Дата сообщения: 10.06.2010 14:03
wolf0425
пинг используем в качестве таймера задержки?
Автор: mugil_cephalus
Дата сообщения: 10.06.2010 14:11
ComradG

Цитата:
Не зря меня били ногами!

да никто тебя не бил то уж... любопытство "спать не давало"

Цитата:
От идеи создания ярлыка я отказался - в любом случае вызывается wscript.exe,

я так и думал, сам идею ( с твоей подачи) крутил и так и эдак, все равно без интерпретатора c/w-script не обойтись
Es ist das Leben dies.
Автор: ComradG
Дата сообщения: 10.06.2010 14:33
mugil_cephalus
So-so, la-la! Hatte ich sange du bist so lange! Doch ich kein, noch weinen.
Так что надо в шапке красными буквами написать:
СОЗДАНИЕ ЯРЛЫКА ЧЕРЕЗ ШТАТНЫЙ CMD.EXE НЕВОЗМОЖНО!!!
Ну, чтоб не пытались изобретать велосипед, как я... Еще раз прошу прощения, за свое упрямство и если кого обидел.
Автор: mugil_cephalus
Дата сообщения: 10.06.2010 14:45
wolf0425

Код: for /f "tokens=1-3 delims=+ " %%a in ('wmic os get LocalDateTime ^|more +1') do set "pid=%%~a%%~b%%~c" &start "" cmd /k "title yourtitle_%%~a%%~b%%~c_ &pause &exit"
Автор: ComradG
Дата сообщения: 10.06.2010 14:56
Кстати
mugil_cephalus
по поводу ругани в адрес findsrt это ты зря (я про прошлый пост)
попробуй сделать так:

Код: @echo off
reg add HKCU\Software\MyTestKey | findstr /i done
reg delete HKCU\Software\MyTestKey /f /va | findstr /i done
exit /b
Автор: mugil_cephalus
Дата сообщения: 10.06.2010 14:56
ComradG

Цитата:
Ну, чтоб не пытались изобретать велосипед, как я...

а про - "пер аспера ад астра" и "суха теория, мой друг, а древо жизни вечно зеленеет..." - забыл?..

Добавлено:
ComradG

Цитата:
Кстати
mugil_cephalus
по поводу ругани в адрес findsrt это ты зря (я про прошлый пост)
попробуй сделать так:

у тебя зоологическая/ихтиологическая аберрация - http://forum.ru-board.com/topic.cgi?forum=62&topic=19668&start=1740#19
Автор: ComradG
Дата сообщения: 10.06.2010 15:02

Цитата:
"суха теория, мой друг, а древо жизни вечно зеленеет..."

Возможно. Но мне хочется использовать потенциал cmd.exe не на 100%, а на 200%.

Добавлено:

Цитата:
у тебя зоологическая аберрация

Нет, уменя всего лишь раковая опухоль (но как видишь еще жив благодаря немецким врачам). И все же я буду настаивать на своем касательно findsrt - это фокус иногда действительно срабатывает, когда не работает 2>nul или 1>nul.
Автор: mugil_cephalus
Дата сообщения: 10.06.2010 15:08
ComradG

Цитата:
Нет, уменя всего лишь раковая опухоль (но как видишь еще жив благодаря немецким врачам). И все же я буду настаивать на своем касательно findsrt - это фокус иногда действительно срабатывает, когда не работает 2>nul или 1>nul.

да это ж был не мой пост (я тебе ссылку привел)
Автор: ComradG
Дата сообщения: 10.06.2010 15:10
Да не в этом дело! Ты

Код: @echo off
reg add HKCU\Software\MyTestKey | findstr /i done
reg delete HKCU\Software\MyTestKey /f /va | findstr /i done
exit /b

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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