Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd) 2

Автор: 01MDM
Дата сообщения: 03.05.2008 16:56
XXXXL

Я правильно понял задачу: выполнить действие если файл весит от 10 до 15 байт?
У меня все правильно работает (отрабатывает условие).
Попробуй не call:1, а сразу call 123.bat

JI063uk

Цитата:
Теперь как это сделать на удаленных компах по сети????


попробуй так:

Код:
sc \\CompName config Messenger start= demand
sc \\CompName start Messenger
Автор: XXXXL
Дата сообщения: 03.05.2008 17:06

Цитата:
Я правильно понял задачу: выполнить действие если файл весит от 10 до 15 байт?
У меня все правильно работает (отрабатывает условие).


01MDM, блин я не указал единицу измерения, вопшето я хотел указать в МБ а написать как-то забыл (((.
Но теперь записал в байтах и поперло

Внеочередной раз СПАСИБО
Автор: JI063uk
Дата сообщения: 03.05.2008 17:22

Цитата:
01MDM


Цитата:

Код:
sc \\CompName config Messenger start= demand
sc \\CompName start Messenger

Не это я уже пробовал работает, я имею ввиду чтобы он считывал с текстового документа имена компов и запускал службу на них что то типа этого:

@echo off
setlocal
for /f "tokens=*" %%i in (list.txt) do (
sc config Messenger start= demand
sc start Messenger
)
PAUSE

тут чего то не хватает
Автор: 01MDM
Дата сообщения: 03.05.2008 17:26
JI063uk


Код:
@echo off
setlocal

for /f "tokens=*" %%i in (list.txt) do (
sc "\\%%i" config Messenger start= demand
sc "\\%%i" start Messenger
)
Автор: JI063uk
Дата сообщения: 03.05.2008 17:48

Цитата:
01MDM

Спасибо
Автор: vmix
Дата сообщения: 04.05.2008 20:25
Кто-нибудь пользовался DelOld в режиме командной строки?

http://www.savilltech.com/delold
Автор: Vladimir_aka_West
Дата сообщения: 05.05.2008 07:53
Здравствуйте,
Нужна помощь в таком вопросе:
Имеется txt-файл сохраненных писем эл. почты, вида:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
От: nicholson <nicholson@mail.ru>
Кому: ...
Написано: ...
Тема: ...
Файлы: Письмо.html
--====----====----====----====----====----====----====----====----====----===--
Текст письма
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
От: Администратор Хостинга <admin@camuzzigas.com.ar>
...
И так далее..

Необходимо выдернуть из текста только адреса электронной почты и сохранить их в отдельный файл.
Автор: 01MDM
Дата сообщения: 05.05.2008 09:11
Vladimir_aka_West

Исходя из твоего образца:


Код:
@echo off
for /f "tokens=2 delims=<>" %%i in ('findstr "@" 1.txt') do (echo %%i 1>>mails.txt)

Автор: Vladimir_aka_West
Дата сообщения: 05.05.2008 09:21
01MDM
Спасибо, как раз то что надо
Автор: Alexx123
Дата сообщения: 05.05.2008 13:06
Люди, помогите написать батник на скачку одного файла из инета по ссылке и сохранение его в определенный каталог. И ещё на запуск exe`шника из сетевой папки типа //server/distr/file.exe
Заранее всем спасибо!
Автор: RG81
Дата сообщения: 08.05.2008 04:32
Привет всем!
столкнулся с такой проблемой как написание обычного пинга...
цель: записать время вкл и время выкл компов (каждого по отдельности)
вот набросок


Код: echo off
title ping
set not0=not
set not1=not
...
set not10=not
set i=0
cls
if not exist c:\LogSchool.txt (echo ^ BEGIN...^ >c:\Log.txt)
:begin
ping pc%i% -n 1 -w 1000 | find "TTL="
if %not% errorlevel 1 if "%not%%i%" == "not" (set not%i%= ) else (set not%i%=not)&^
echo %errorlevel% %date% %time% pc%i% >> c:\Log.txt
set /a i+=1
if %i%==11 set /a i=0
echo %not%%i%
goto begin
pause
Автор: 01MDM
Дата сообщения: 08.05.2008 07:35
RG81
Лучше возьми за основу такую конструкцию:

Код:
ping -n 1 CompName && (
echo success CompName %date% %time% >>Log.txt
) || (
echo failure CompName %date% %time% >>Log.txt
)
Автор: My_Nick_Name
Дата сообщения: 08.05.2008 08:44
Здравствуйте, Уважаемые!
Возникла задача добавления Reservation на DHCP сервер. Руками ясно дело "влом". Решил написать батник. Смысл батника следующий:

1. я создаю текстовый файл names_dhcp.txt, в котором по следующему шаблону ввожу доменное имя машины и резервируемый за ней IP: [name].[damain];[reservationIP]

Пример содержания names_dhcp.txt:

andrey.sdr;10.10.2.20
vova.sdr;10.10.3.180

2. В Log файлах DHCP-сервера, которые он хранит по пути C:\Windows\system32\dhcp ищу MAC-адрес соответствующий имени машины.

3. Выполняю команду dhcpcmd входящую в состав набора утилит resource kit'a w2k

Dhcpcmd ServerIpAddress AddReservedIp ScopeAddress ReserveIp HardwareString [Clientname] [ClientComment] [DHCP|Bootp|Both]

Пример: dhcpcmd 127.0.0.1 addreservedip 11.101.0.0 11.101.13.53 08002B30369B nursvd1 both


Мой батник:

@echo off
for /f "tokens=1,2 delims=;" %%i in (names_dhcp.txt) do (@echo %%i %%j
for /f "tokens=7 delims=," %%c in ('findstr %%i DhcpSrvLog*.log') do (dhcpcmd server 127.0.1.1 addreservedip 10.10.0.0 %%j %%c %%i both
)
)
pause

Возникла следующая ПРОБЛЕМА В Log файле для имени машины из names_dhcp.txt может существовать несколько строк и следовательно команда dhcpcmd будет выполняться столько раз сколько строк с содержанием имени машины найдется в Log файлах.

ВОПРОС: как можно сделать так, чтобы команда dhcpcmd выполнялась для всех %%i, но только для первого найденного %%с???

Автор: 01MDM
Дата сообщения: 08.05.2008 09:05
My_Nick_Name

Как понял вопрос в том, что бы вовремя выйти из второго цикла?

Код:
@echo off
for /f "tokens=1,2 delims=;" %%i in (names_dhcp.txt) do (
echo %%i %%j
call:1 "%%i" "%%j"
)
pause
goto:eof

:1
for /f "tokens=7 delims=," %%c in ('findstr %~1 DhcpSrvLog*.log') do (
dhcpcmd server 127.0.1.1 addreservedip 10.10.0.0 %~2 %%c %~1 both
goto:eof
)
Автор: My_Nick_Name
Дата сообщения: 08.05.2008 10:42
01MDM

Да, Вы поняли правильно. Спасибо.Все выполняется, как я и хотел. Буду дальше ковырять искусство написания батников

A зачем после pause следует команда goto:eof???
Автор: 01MDM
Дата сообщения: 08.05.2008 11:20
My_Nick_Name

Цитата:
A зачем после pause следует команда goto:eof???


Для того что бы батник заканчивал выполнение в нужном месте и не отрабатывал цикл, который в "сабрутине" 1: еще раз.


Автор: JI063uk
Дата сообщения: 08.05.2008 22:27

Здравствуйте. У меня возник такой вопрос почему данная команда не работает и программа не запускает на удаленном компе зато запускается у меня
tasklist /s "\\имя компа" | find /i "1.exe" || start "" "C:\1.exe"
может есть другая вариант решения проблемы или есть ошибка в коде??? подскажите пожалуйста

Автор: Elroir
Дата сообщения: 09.05.2008 23:03
JI063uk

Цитата:
или есть ошибка в коде???

Есть. Во первых - выдает ли команда
Код: tasklist /s "\\имя компа"
Автор: JI063uk
Дата сообщения: 10.05.2008 04:08

Цитата:
список процессов на удаленном компе?
Во вторых, чтобы запустить программу на удаленном компе, нужно воспользоваться утилитами удаленного запуска, вроде psexec.exe


tasklist /s "\\имя компа" работает как часики, а psexec.exe выкачял щас буду юзать спасибо за помащь Elroir
Автор: Ortios
Дата сообщения: 11.05.2008 20:56
У меня вопрос к специалистам по утилите SED.
Возьмем к примеру типовое использование sed.

Цитата:
sed -e "что-то делаем" old.txt > new.txt

При массовой обработке файлов довольно неудобно порождать другие файлы.
Логичнее производить изменения непосредственно в файле. Но как это сделать
я пока не нашел. Хотя упоминается ключ -i, вроде бы позволяющий делать это,

Цитата:
sed -i -e "что-то делаем" source.txt

но у меня он не отрабатывает, как положено, а наоборот порождает файл
с именем sedDOSSUW.
Пользуюсь версией super Sed (sed-3.59). Ссылка
Скачал версию 3.62 Ссылка та же картина.
Кто-нибудь знает как заставить SED производить изменения непосредственно в файле?
Автор: 01MDM
Дата сообщения: 11.05.2008 23:58
Ortios


Цитата:

> sed --version
GNU sed версия 4.1.5
Copyright (C).....


Все работает, из набора gnuwin32
Автор: Ortios
Дата сообщения: 12.05.2008 11:21
01MDM
Спасибо, возьму на вооружение версию Sed 4.15. Хотя придется для переносимости с компа на комп в дополнение к exe-шнику держать в комплекте две dll-ки из каталога Bin.
Отличий в синтаксисе от SuperSed-ов при поверхностном взгляде пока не нашел.
Автор: 01MDM
Дата сообщения: 12.05.2008 12:01
Ortios
ssed почему-то не может исходный файл /переименовать/заменить/ временным, вот и утыкается.
Автор: zx12r
Дата сообщения: 15.05.2008 10:25
привет всем.
Люди подскажите, пожалуйста, как передать параметр из командной строки в cmd-файл.

Т.е. мне нужно чтобы я набирал к примеру: mycopy.cmd file1.txt
И батник копировал указанный файл в папки d:\folder1, d:\folder2, d:\folder3.

И также, если я укажу так: mycopy.cmd d:\myfolder\*.*
То копируются все файлы из папки...


Спасибо.
Автор: 01MDM
Дата сообщения: 15.05.2008 11:54
zx12r
В самом бат-файле параметры:
%0 - сам батник,
%1-%9 остальные параметры (или %*, если параметров много и надо избежать shift)

В твоем примере это будет выглядеть скорее так

mycopy file1.txt

Код:
@echo off
copy %1 d:\folder1
copy %1 d:\folder2
copy %1 d:\folder3
....
copy %1 d:\folderN

Или так если надо скопировать во все папки на D:\:
for /d %%i in (D:\*) do copy %1 "%%i"

Автор: zx12r
Дата сообщения: 15.05.2008 11:58
201MDM
Большое спасибо. Как раз то, что нужно.
Автор: VerlyOKa
Дата сообщения: 15.05.2008 14:31
ребята, помогите, плз.
Есть задачка перебрать в папке файлы по определенной маске :*h.txt и скопировать определенные данные в текстовый файл
если делаю для одного файла так:

for /f "tokens=15,21,18 delims=    " %%a in (%tempdir%/125333h.txt) do echo %%a,%%b,%%c>>1.txt,
то работает, хочу сделать, чтоб перебирало все файлы, что-то типа
for /f "tokens=15,21,18 delims=    " %%a in (%tempdir%/*h.txt) do echo %%a,%%b,%%c>>1.txt - работать не хочет, где я допустил ошибку?
Автор: Elroir
Дата сообщения: 15.05.2008 17:52
VerlyOKa
Используй внешний цикл, который бежит по файлам. "for /f" не умеет работать с символами подстановки.
Автор: aka_Fduch
Дата сообщения: 15.05.2008 18:52
здравствуйте,

мне необходимо скопировать содержания диска G (флэшка) в папку d:\tmp
причем скопировать не только файлы из корня G, но также и вложенные папки и файлы
причем хотелось бы сделать это скрыто, без видимой активности

написал батнег:
@echo off
copy g:\*.* d:\tmp1

но копирует только файлы из корня, да еще и выскакивает окошко dosa
помогите если можете
спасибо
Автор: 01MDM
Дата сообщения: 15.05.2008 21:06
aka_Fduch

xcopy /?


Код:
xcopy /e g:\ d:\tmp1\

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


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