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

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

Автор: presston
Дата сообщения: 13.05.2007 21:41

Цитата:
8. ping -n 11 -w 1000 127.0.0.1>nul - пауза 10 сек. Пингуем свой комп 11 раз - примерно 10 сек.



вот она фишка) понял. а можно еще как-то включить в код что количество потерь показывало .. там раз в 3 минуты (для радио сети)

пасиба большое!
Автор: Elroir
Дата сообщения: 13.05.2007 21:44
presston

Цитата:
а можно еще как-то включить в код что количество потерь показывало .. там раз в 3 минуты (для радио сети)

Немножко не понял - показывать сколько раз пинг не прошел?
Раз в 3 минуты что происходит?
Автор: trigliff
Дата сообщения: 13.05.2007 21:49
NIKZZZZ, спасибо.
Извиняюсь за свою наглость, но есть ещё вопрос.
А можно как-то туда ещё паузу вставить минут на 20 после не удачной попытки соединения? Вечерами бывает при реконнекте сессия не корректно завершается и висит у прова минут 15-30 с выдачей ошибки 691.
Автор: presston
Дата сообщения: 13.05.2007 22:09

Цитата:
Немножко не понял - показывать сколько раз пинг не прошел?
Раз в 3 минуты что происходит?


ну да. сколько пингов было потеряно .. или сколько пакетов. хоть какую-то статистику

Автор: NIKZZZZ
Дата сообщения: 13.05.2007 23:48
trigliff


Код: @echo off
setlocal
set flag=No
:_1
rasdial соединение
for /f "tokens=1* delims=" %%a in ('ipconfig ^| find "соединение"') do set "Flag=Yes"
if %Flag%=No (
ПАУЗА
goto _1
)
Автор: Elroir
Дата сообщения: 14.05.2007 00:46
presston

Код:
@echo off
setlocal
set "sent=0"
set "lost=0"
:try
ping -n 1 127.0.0.1 | find /i "TTL=">nul
if %errorlevel%==0 (
echo Working
) else (
set /a "lost+=1"
echo Not working
)
set /a "sent+=1"
ping -n 11 -w 1000 127.0.0.1>nul
set /a "show=%sent% %% 18"
if %show%==0 echo Sent %sent% pings, lost %lost%
goto try
Автор: presston
Дата сообщения: 14.05.2007 13:08
Спасибо!!
Автор: Gabzya
Дата сообщения: 14.05.2007 16:40
wolf0425

Цитата:
это как?!? п и П - русские, кодировка батника в редакторе 1251?

да... сам в шоке
Автор: wolf0425
Дата сообщения: 14.05.2007 17:19
Gabzya

Цитата:
да... сам в шоке

повторить не получается.
может кинешь пару примеров имен файлов, переименованных неправильно?
Автор: xy
Дата сообщения: 14.05.2007 17:25
Добрые люди, знаю точно что скрипты тут такие уже обсуждались, но ткните носом на конкретный плииз

Нужно запускать батник с 1 параметром
параметр - папка
в этой папке батник просматривает все файлы и подпапки и каждый не-зип файл (определять по расширению) запаковывает в зип (типа имя.ещеимя.раширение -> имя.ещеимя.раширение.zip)

можно с логом %)

заранее огромное спасибо!!
Автор: Maza Faka
Дата сообщения: 14.05.2007 19:15
xy
Можно так:

Код:
@Echo off
If "%~1"=="" Goto Help

Pushd "%~1"
For /f "tokens=*" %%a in ('Dir /b') do (
If not "%%~xa"==".zip" pkzip -add -directories "%%a.zip" "%%a">> Log.txt 2>&1)
Popd
Goto :EOF

:Help
Echo Syntax Arc.bat Puth
Автор: xy
Дата сообщения: 14.05.2007 20:18
Maza Faka
не, ну с архиватором понятно.. я вообще винраром архивировать собирался.. его консольной версией :)

попробую - отпишусь, спасибо

Добавлено:
в общем адаптировав по свою задачу и использовав 7зип (ибо он бесплатный), получил вот такое:

Код:
@Echo off

for /f "tokens=*" %%a in ('dir /b /s /l *.orf') do (
"c:\program files\7-zip\7z.exe" a -tzip -mx9 "%%a.zip" "%%a"
del /f /q "%%a")
Автор: wolf0425
Дата сообщения: 15.05.2007 09:07
xy
"c:\program files\7-zip\7z.exe" a -tzip -mx9 "%%a.zip" "%%a"
del /f /q "%%a"
сделай лучше в одну строку через && - хоть не будет пытаться удалять файлы, которые по каким-то причинам не удалось запаковать. раз уж 7z не имеет команды m(ove)
Автор: xy
Дата сообщения: 15.05.2007 09:42
wolf0425
типа "c:\program files\7-zip\7z.exe" a -tzip -mx9 "%%a.zip" "%%a" && del /f /q "%%a"
:-?

Добавлено:
сделал, спасибо :)
Автор: Simoid
Дата сообщения: 15.05.2007 12:42
Для сбора статистики о друзьях наших железных в моей компании используется Everest Corporate. Все это делалось вручную. Хочу автоматизировать этот процесс.

Для этого написал батник:
set %SystemRoot%=\\222.222.222.222\everest
start \\222.222.222.222\everest\everest.exe /SILENT /R \\222.222.222.222\Reports\$DATE\$IPADDR($HOSTNAME)-$USERNAME /TEXT /LANGru

Помогите решить два вопроса:
1) Почему то на многих компьютерах батник не выполняется Запускается программа, но не создает отчет и не ложит куда нужно. Возможно неправильно написал батник.
2) Как прописать это дело в реестр или в автозагрузку. Чтобы пользователь не видел окна запуска.

Автор: Maza Faka
Дата сообщения: 15.05.2007 14:23
Simoid
Попробуй так:

Код:
@Echo off
Set SystemRoot=222.222.222.222\Everest;%SystemRoot%
Start everest.exe /SILENT /R 222.222.222.222\Reports\$DATE\$IPADDR($HOSTNAME)-$USERNAME /TEXT /LANGru
Автор: wolf0425
Дата сообщения: 15.05.2007 14:55

Цитата:
2) Как прописать это дело в реестр или в автозагрузку. Чтобы пользователь не видел окна запуска.
а обязательно в автозагрузку? пропиши в шедулер, чтоб от system пускалось...
Автор: euheny
Дата сообщения: 16.05.2007 03:11
а если в кавычках ещё одни есть , что делать ? это для reg
Автор: Maza Faka
Дата сообщения: 16.05.2007 06:40
euheny
Не совсем понятно, приведи пример...
Автор: slayer120
Дата сообщения: 16.05.2007 08:23
Simoid
Если есть домен лучше всего через доменные политики прописать.
Проверь у шары 222...reports чтобы права полные были для everyone
либо domains user (если домен).

all
Подскажите можно ли сравнивать даты создания файлов.
те. Задача - найти самый последний созданный файл
бакапа dir не подходит ибо файлы на одном компе могут
лежать на разных дисках.


Автор: KapralBel
Дата сообщения: 16.05.2007 08:52
slayer120

Цитата:
Подскажите можно ли сравнивать даты создания файлов.
те. Задача - найти самый последний созданный файл
бакапа dir не подходит ибо файлы на одном компе могут
лежать на разных дисках.

Задача звучит так - найти последний созданный файл на компе, а не в конкретной папке?

Тогда облом по полной - пока батничек - пробежит хотя бы папку Windows - еще пару десятков создасться
Автор: wolf0425
Дата сообщения: 16.05.2007 09:04
KapralBel файлы никакие искать не надо - уже нашли до нас.
допустим есть %file1% и %file2% - имена с путями.
требуется выяснить который из этих файлов свежее.

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


Добавлено:
Maza Faka

Цитата:
Не совсем понятно, приведи пример...

чего тебе непонятно? нужно с помощью reg.exe записать в регистри например строку из 11 символов '12 3"456"78'
Автор: slayer120
Дата сообщения: 16.05.2007 09:08
KapralBel
Все проще - есть несколько файлов бакапа на каждом серваке.
бакапы могут делаться на разные винты в разные дни (по
религиозным сображениям ). Теперь надо периодически
копировать последний по времени архив каждого сервака на
файловый сервер.
Имена файлов не меняются, бакапы переписываются поверх.

PS а вариант брать дату создания(число.месяц.год) отбрасывать точки
и сравнить что осталось пройдет?
Автор: wolf0425
Дата сообщения: 16.05.2007 09:14
slayer120

Цитата:
Все проще - есть несколько файлов бакапа на каждом серваке.

так эти файлы лежат на каждом сервере в одном каталоге или нет?
если в одном - отсортируй их через dir /b /o-d \\server\share\*.* и возьми первый из списка
Автор: KapralBel
Дата сообщения: 16.05.2007 09:22
slayer120
Тогда лови


Код: @Echo Off
Set dt=%~t1
Set dtDay=%dt:~0,2%
Set dtMon=%dt:~3,2%
Set dtYea=%dt:~6,4%
Set dtHou=%dt:~11,2%
Set dtMin=%dt:~14,2%

Set dtDateSort=%dtYea%%dtMon%%dtDay%-%dtHou%%dtMin%

Set dt
Автор: Maza Faka
Дата сообщения: 16.05.2007 09:45
wolf0425

Цитата:
чего тебе непонятно? нужно с помощью reg.exe записать в регистри например строку из 11 символов '12 3"456"78'

Какую именно строку? Строку пути, значения, параметра значения? Просто хотел уточнить, я ведь не телепат! И чем сидеть и гадать, не лучше ли спросить подробности!
Автор: NIKZZZZ
Дата сообщения: 16.05.2007 09:47
wolf0425

Цитата:
ну и на практике файлов скорее не пара через переменные заданы, а длинным файлом-списком (с путями!), который надо отсортировать - но одно к другому нет проблем свести, решать можно в любом варианте.


Если нужно получит сортированный список


Код: del temp.txt
for /f %%i in (files.txt) do (
for /f "tokens=1-5* delims=.: " %%j in ("%%~ti") do echo %%l%%k%%j%%m%%n %%i>>temp.txt
)
type temp.txt | sort >result.txt
Автор: slayer120
Дата сообщения: 16.05.2007 10:01
NIKZZZZ
KapralBel
Гран мерси.
Может добавить в фак по работе с временем?
wolf0425

Цитата:
отсортируй их через dir /b /o-d \\server\share\*.*

На одном серваке баки лежат в одном каталоге.
Но все равно с dir имно неудобно огород городить.
Более правильно работать с полным списком бакапов по всем серверам
т.е. взять код NIKZZZZ и добавить цикл по сервакам (для каждого
сервака из общего списка брать последний самый свежий бакап и копировать).

Автор: wolf0425
Дата сообщения: 16.05.2007 10:11
Maza Faka

Цитата:
Какую именно строку? Строку пути, значения, параметра значения?

какая нафиг разница - пути или параметра - "строку с кавычками внутри (строки)".

NIKZZZZ
идея зравая, только аккуратнее надо примеры писать
for /f "tokens=*" %%i in (files.txt) do (
Автор: Maza Faka
Дата сообщения: 16.05.2007 10:17
Ч

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Автозагрузка терминальной сессии


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