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

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

Автор: Elroir
Дата сообщения: 02.06.2008 16:19
Laureus

Цитата:
У меня при запуске батника открывается черное окно ДОС С:\WINDOWS\system32\cmd.exe и более ничего не происходит.

Ты наступил на очень распространенные грабли
Нельзя было называть батник ping.bat. В самом батнике используется команда ping, но так-как не указано расширение (.exe), то батник запускает первое что попадется в текущей директории с именем ping - то есть самого себя. И так по циклу.
Переименуй батник.
Автор: igor_andreev
Дата сообщения: 02.06.2008 16:22

Цитата:
в чем проблема?
Exchange 2007 ?

отправляя с blat, thebat все отлично

нет ли каких других консольных почтовых клиентов

В вопросе и ответ уже содержится В настройках OE проблема, явно не в getmail и батнике. А Outlook и Outlook Express вместе с Exchange могут корки мочить Getmail хорошая прога, другие не помогут, если она не может вытащить. Postie, Zerat можешь попробовать. В варезнике кстати есть ссылки на последнюю бесплатную версию postie.


Цитата:
поправьте пожалуйста хочу отправить вложения, но почему то не отправляются?

Все параметры можно занести в текст-файл и:

Код:
blat -of file.ext
Автор: tolyn77
Дата сообщения: 02.06.2008 16:23
подскажите как из бат файла поменять место положения "мои документа" в системе?
как с свойствах "мои документы" на рабочем столе "переместить".
заранее благодарен
Автор: JohnRD
Дата сообщения: 02.06.2008 16:42
igor_andreev

я уже примерно понял что у Microsoft свои RFC по поводу почты..
думаю подсадить всех людей на blat по всей Росии %)

с blat.ini прикольно обязательно сделаю

вот только мне нужно
отсылать из одной папки, куда будут складываться xml
удалять после отправки, то что оправил.
регулировать количество вложений в письме в зависимости от пропускной спос. почтовиков
и делать это нужно часто

вот почему не пашет этот скрипт не пойму
for %%a in (E:\install\GetMail\22\*.xml) do blat -of blat.ini -attach %%~nxF

спасибо за наставления.
Автор: igor_andreev
Дата сообщения: 02.06.2008 16:49
JohnRD

Цитата:
вот почему не пашет этот скрипт не пойму

Дык ты определись, %%~nxa или %%~nxF

Автор: 01MDM
Дата сообщения: 02.06.2008 16:51
Angel Hranite

Цитата:
1. создать в той ветке переменную prog равную путь_до_ехе_файла\имя_ехе_файла(без расширения, т.е. без .ехе).имя_компа
2. создать рядом с prog.ехе файлом папку с именем "имя_ехе_файла.имя_компа"
3. запустить prog.ехе


Можно и не поверять наличие переменной, а просто создать

Код:
@echo off
setlocal

set regpath=hklm\system\controlset001\control\session manager\environment
reg add "%regpath%" /v prog /t reg_sz /d "%~dp0prog.%computername%" /f
md "prog.%computername%"

start "" "prog.exe"
Автор: Elroir
Дата сообщения: 02.06.2008 16:52
Angel Hranite

Цитата:
пример:
prog.exe лежит в C:\folder, тогда переменная должна выглядеть так prog=C:\folder\prog.pc01, и создана папка с именем prog.pc01


Примерно так:

Код:
@echo off
setlocal
reg query "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v prog 1>nul 2>&1
if "%errorlevel%"=="0" goto cont
call :create_vars "prog.exe"
reg add "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v prog /d "%record%" /f 1>nul 2>&1
:cont
md "%folder%" 2>nul
prog.exe
goto :EOF

:create_vars
set "record=%~dp1%~n1.%computername%"
set "folder=%~n1.%computername%"
Автор: JohnRD
Дата сообщения: 02.06.2008 16:59
igor_andreev

ну да это я тут ошибся

не шлет атачи и все..

Код: E:\install\GetMail>blat -of blat.ini -attach 80020_616402001N_080501_6054.xml
Blat v2.6.2 w/GSS encryption (build : Feb 25 2007 12:06:19)

Sending stdin.txt to info@domain.ru
Subject: test
Login name is webmaster@domain.ru
Автор: XmakcX
Дата сообщения: 02.06.2008 17:15
01MDM

Извеняюсь за назойливось,но как сделать что при запуске оперы или эксплорера-запусклся батник и обновлял файл с трафиком(хотя можно сделать запуск оперы через этот же батник)?
Автор: igor_andreev
Дата сообщения: 02.06.2008 17:16

Цитата:
E:\install\GetMail\22\


Цитата:
не шлет атачи и все..

E:\install\GetMail>blat -of blat.ini ...

А с чего он будет их слать, если *.xml лежат в папке E:\install\GetMail\22\, а запускаешь ты из папки E:\install\GetMail\. Откуда blat знает, где ему брать этот xml? Или запускай его из папки с xml-ками, которые нужно прикреплять к письму, или в параметре -attach указывай полный путь к файлу(%%F), а не имя-расширение(%%~nxF)

for %%F in (E:\install\GetMail\22\*.xml) do blat -of blat.ini -attach %%F
Автор: 01MDM
Дата сообщения: 02.06.2008 17:31
XmakcX
Для того, чтобы обновлялся файл статистики используй netstat c ключом -v


Код:
netstat -e -v 5 >stat.txt
Автор: XmakcX
Дата сообщения: 02.06.2008 17:49
СПАСИБО ОГРОМНОЕ!трафик за период надо узнать.Надо так что при запуске оперы запускался батник и при закрытие тож закрывался и все траффик за этот период отражался в текстовом
Автор: 01MDM
Дата сообщения: 02.06.2008 18:05
XmakcX

Примерно так

Код:
@echo off
setlocal enabledelayedexpansion
start "" "%PROGRAMFILES%\Opera\opera.exe"
:loop
for /f "tokens=1-3" %%i in ('netstat -e ^| findstr /i "байт"') do (
echo out: %%j 1>1.txt
echo in : %%k 1>>1.txt
set /a ttl=%%j+%%k
echo total: !ttl! 1>>1.txt
ping -n 6 localhost 1>nul
pslist | findstr "opera" && goto:loop
)
Автор: XmakcX
Дата сообщения: 02.06.2008 18:22
спасибо-работает.а файл 1.txt формируеться в каталоге запуска оперы?или в каталоги запуска батника?
Автор: 01MDM
Дата сообщения: 02.06.2008 18:25
XmakcX

Рядом с батником. Можно подправить к нему путь или батник положить где удобней.
Автор: XmakcX
Дата сообщения: 02.06.2008 18:33
У меня нет ни оперы ни tasklist.exe (по-этому написал pslist)-поясни что это...в батниках не сильно((

Код: @echo off
chcp 1251 >nul
setlocal enabledelayedexpansion
start "" "%PROGRAMFILES%\Opera\opera.exe"
:loop
for /f "tokens=1-3" %%i in ('netstat -e ^| findstr /i "байт"') do (
echo out: %%j 1>1.txt
echo in : %%k 1>>1.txt
set /a ttl=%%j+%%k
echo total: !ttl! 1>>1.txt
ping -n 6 localhost 1>nul
pslist | findstr "opera" && goto:loop
)
Автор: 01MDM
Дата сообщения: 02.06.2008 18:44
XmakcX
Строка:
pslist | findstr "opera" && goto:loop

У меня нет tasklist.exe (XP Home), a pslist.exe есть. Написал в качестве примера. Лучше так чем угадывать вывод команды. Попробуй заменить "pslist" на "tasklist"



Автор: Laureus
Дата сообщения: 02.06.2008 18:46
Elroir

Цитата:
Нельзя было называть батник ping.bat.

Переименовал. Внешне ничего не изменилось: то же окно запуска и также в левом верхнем углу черного экрана мигает курсор. Как проверить , что батник работает правильно? Должноли появляться при запуске это окно и должно ли потом исчезать или сворачиваться. К-н внешние признаки работы батника есть?
Автор: XmakcX
Дата сообщения: 02.06.2008 18:53

Цитата:
tasklist

оооо..теперь сработало у меня ХР-Ubuntu -спасибо за помощь.все кайф работает)))Жаль веб мани пиво не переводит))
Автор: Angel Hranite
Дата сообщения: 02.06.2008 19:49
01MDM спасибо!
Elroir и Вам спасибо! только вот решил немного автоматизировать...

Цитата:
setlocal
set prog=Patch
set SANDBOX_DIR=%prog%"_SANDBOX_DIR"
reg query "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v %SANDBOX_DIR% 1>nul 2>&1
if "%errorlevel%"=="0" goto cont
call :create_vars %prog%".exe"
reg add "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v %SANDBOX_DIR% /d "%record%" /f 1>nul 2>&1
:cont
md "%folder%" 2>nul
%prog%".exe"
goto :EOF

:create_vars
set "record=%~dp1%~n1.%computername%"
set "folder=%~n1.%computername%"

программа запускается, переменная создается но немного неправильно

Цитата:
Patch_SANDBOX_DIR=C:\Documents and Settings\user\Рабочий стол\Patch.PC003 /f 1>nul 2>&1

как это можно исправить?

Добавлено:
разобрался! спасибо еще раз!
Автор: Elroir
Дата сообщения: 02.06.2008 21:58
Laureus

Цитата:
К-н внешние признаки работы батника есть?

Нет - внешних признаков нет. Можешь убрать первую строчку (@echo off) и окончания строчек с ping-ами (>nul). Тогда будет видно, что происходит.
Автор: tolyn77
Дата сообщения: 03.06.2008 06:50
привет, всем
подскажите как в for перебрать диапазон?
что то типа такого?
FOR %%a IN ( 31 .. 220 ) DO ping -n 1 10.0.0.%%a
заранее благодарен
Автор: 4aplin
Дата сообщения: 03.06.2008 08:02
Cyril Konst
Вот теперь понятно. Спасибо тебе!!!
Автор: 01MDM
Дата сообщения: 03.06.2008 08:02
tolyn77


Код:
for /l %%i in (31,1,220) do ping -n 1 10.0.0.%%i
Автор: 4aplin
Дата сообщения: 03.06.2008 08:14
Здравствуйте!!! У меня проблема с написанием батника, выполняющего следующую задачу...
Если процессы в системный лог пишут ошибку, тогда вызов blat, весится на команду eventtriggers и отправляет сообщение о том, какой сервис полетел...
Подскажите, как его написать.
Автор: 01MDM
Дата сообщения: 03.06.2008 08:16
Cyril Konst


Цитата:
А как получить имя принтера по умолчанию и передать его другой утилитке (setprinter.exe)?
При этом батник нужно выполнять под юзером но с правами админа.


На первую часть вопроса

Код:
@echo off
for /f "tokens=2*" %%i in ('wmic printer where "default=true" get Name /value') do (
    set "name=%%i %%j"
)

setprinter.exe %name%
Автор: JohnRD
Дата сообщения: 03.06.2008 08:36
igor_andreev

спасибо, теперь отсылает аттачи

Код: for %%F in (E:\install\GetMail\22\*.xml) do blat -of blat.ini -attach %%F
Автор: denixxbaykin
Дата сообщения: 04.06.2008 04:09
Существует папка Papka. Её месторасположение может быть любым в системе (на любом логическом диске, в любой папке). Это я к тому, что работа батника ведётся "из текущей папки". В ней находятся 2 вложенные папки. P1 и P2. Иерархия дальнейших вложений не важна (возможно, даже неизвестна). В P2 лежат папки/файлы, которые должны быть перемещены в P1 с соблюдением иерархии. Нужно переместить содержимое P2 в P1, но сделать это не копированием, а сразу перемещением. Как в проводнике "Вырезать" - "Вставить", чтобы не тратить место на диске. При этом, если будут встречены файлы с одинаковыми именами, перезаписать поверх.
Я пробовал поколдовать с move...
В общем, у меня получились только такие варианты:
move /y .\P2\* .\P1 пишет синтаксис эррор )
а если без звезды, то он тупо P2 внутрь P1 пихает...
Короче, насколько я понял, тут нужно применить рекурсию, чтобы получить список файлов, потому что move работает таким образом только с файлами... вот тут и затык... Что-то не хватило мне мозга оформить её... ( Чувствую себя заварником...
Хелп? Наверняка уже кто-то с этим сталкивался... Пробовал поиском поюзать, но понял, что я скорее сам допетрю до того, как это сделать, чем найду в 5 темах ответ...
---
Ещё немного покемарив над этим, нашёл вот такую вот фичу:
for /f %p in ('dir /a /b /s .\pp2\') do move /y %p .\pp1\
Получаем список файлов... но это немного не то. Файлы перемещаются в pp1, прям в корень... так быть не должно. Получается, надо список, полученный при помощи dir ещё как-то обрезать, чтобы элементы в нём имели не абсолютный путь... ещё один затык...
Можно попробовать отрезать через subst... привязать текущую папку к букве диска, и уже потом вырезая букву диска, получать относительный путь... в общем, я спать, а то уже утро... башка думать перестаёт.
Автор: ildar1
Дата сообщения: 04.06.2008 08:24
Посоветуйте плиз, как запустить БАТ файл в скрытом окошке? Старт дает максимум свернутое, CALL вообще не управляет окном, хотелось бы обойтись без доп.программ (Win2003).
Автор: utf
Дата сообщения: 04.06.2008 08:47
Добрый день.
Не подскажете, как можно проверить работает ли кто в расшаренной папке? Единственная мысля которая пришла на голову, проверять открыт ли на чтение/запись файл из этой расшаренной папки. Хотя как и это реализовать я тоже не знаю.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Сброс пароля администратора


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