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

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

Автор: igor_andreev
Дата сообщения: 19.01.2006 08:53
surgutfred
cd /d q:
Автор: MasterTheMAC
Дата сообщения: 19.01.2006 09:12
jak_forest, ipmanyak

Цитата:
не идут в стандартной поставке

В этом-то все и дело. Мы пытаемся в этой теме стандартным набором программ обойтись.
Автор: surgutfred
Дата сообщения: 19.01.2006 09:20
igor_andreev
cd /d q: не спасло
Автор: KapralBel
Дата сообщения: 19.01.2006 10:42
surgutfred

Код:
C:
...
Автор: dkuzmin
Дата сообщения: 19.01.2006 13:27
На удаленной машине запущена служба на 3300 порту.
Как с Windows-системы с помощью скрипта (!) cmd bat определить доступность порта?
Знаю что проверить надо через telnet host 3300
НО необходимо, чтобы после этой команды проверки выдавало сообщение, типа "Да, порт доступен" иначе "Нет, не доступен"
Т.е. в итоге необходимо получить скрипт, при запуске которого выдается сообщение (или какой то признак), что порт на удаленном хосте доступен
Автор: jak_forest
Дата сообщения: 19.01.2006 16:22
dkuzmin
даже не надо telnet использовать
попробуй типа такого

Код:
C:\Documents and Settings\...>netstat | findstr /i "4899"
TCP uit-toasu-sa-01:2219 zp.nafta.priv:4899 ESTABLISHED
Автор: MasterTheMAC
Дата сообщения: 19.01.2006 16:36
jak_forest

Цитата:
На удаленной машине


При чем тут netstat?
Автор: jak_forest
Дата сообщения: 19.01.2006 16:43
MasterTheMAC
Упсссссс.
протупил. извиняюсь
Автор: Strogg
Дата сообщения: 19.01.2006 23:31
Подскажите, а как использовать коменду Тaskkill в зависимости от запущенного процесса?
Мне нужно в таком формате:
if exist (процесс такой-то) - taskkill убить процесс!
Автор: MasterTheMAC
Дата сообщения: 20.01.2006 05:42
Strogg

Предположим, что ищем far.exe


Код: tasklist|find /i "far.exe">nul & if errorlevel 1 (echo No such process!) else (taskkill /f /im far.exe /t)
Автор: dkuzmin
Дата сообщения: 20.01.2006 06:55
что моя задачка не решаема?
Автор: Alan Mon
Дата сообщения: 20.01.2006 10:07
Попробуй portqry. Вроде то, что тебе нужно. Сканирует нужный порт нужного хоста и по результатам выставляет errorlevel.
Автор: ipmanyak
Дата сообщения: 20.01.2006 10:22
dkuzmin утилита portqry из Support tools от Windows 2003 , тулз находится в дисрибе в каталоге SUPPORT\TOOLS>SUPTOOLS.MSI
Автор: koart
Дата сообщения: 20.01.2006 15:05
Здравствуйте! Есть маленькая задачка, к стыду своему, никак не разберусь с ней.
Надо заставить программу бэкапа после выполнения задания выключать компьютер. Программа может запускать файл по завершению работы. Я создал батник с содержимым [ shutdown -s -t 30 -c " Завершаем работу после резервного копирования." -f ], без скобок, конечно. Проблема вот в чем: компьютер завершает работу, но полностью не выключается, на экране остается "теперь питание можно отключить". А надо чтобы выключался совсем. Винда 2000 prof sp4 со всеми заплатками от мелкомягких. Может, кто-нибудь подскажет, как выйти из ситуации?
Автор: valdi77
Дата сообщения: 20.01.2006 15:06
Подскажите пожалуйста, как можно удалить все файлы созданные старше заданного числа дней, из заданного каталога, причем в названии файла присутствует дата в вмде
1с_ВЬ_01122006.zip
Ответ nightlight я прочел есть ли другие идеи [more]
nightlight

Цитата:
Проще всего с помощью утилиты forfiles.exe из reskit


To list all of the files older than 100 days on drive C:, type:

forfiles /p c:\ /s /m*.* /dt-100 /c"cmd /c echo @file : date >= 100 days"

http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/ServerHelp/9660fea1-65c7-48cf-b466-204ba159381e.mspx

Идеологически более правильно делать это WSH скриптом...

Here is a Michael Harris script that deletes files older than x days:
http://groups.google.com/group/microsoft.public.scripting.wsh/msg/14df6623fc552446

[/more]
Автор: KapralBel
Дата сообщения: 20.01.2006 15:38
valdi77
А чем тебя не устраивает предложение nightlight - самое короткое и удобное
Автор: valdi77
Дата сообщения: 20.01.2006 15:39
KapralBel
Это решение, но не программирование
Автор: KapralBel
Дата сообщения: 20.01.2006 16:02
valdi77
Если тебе надо решить это используя возможности только cmd.exe - то достаточно сложно. Вернее не сложно а долго и муторно расписывать
Попробую дать общие рекомендации
1. На 9-й странице см. мой пост как отнять 1 день от текущей даты. По аналогии сделай нужное количество дней.
2. Получишь дату.
3. Формируешь имя файла - удаляй
4. далее от полученой даты - отнимай день и повторяй цикл снова.

Если тебе надо рабочее решение - то лучше воспользоваться советом nightlight, если потренироваться в программировании то смотри мои рекомендации.
Автор: Strogg
Дата сообщения: 20.01.2006 16:32
MasterTheMAC
Большое спасибо!
Автор: valdi77
Дата сообщения: 20.01.2006 17:38
KapralBel
Как выяснилось у меня нет Windows 2000 Resource Kit, файл из win2003 не хочет на 2000 не поможет ли кто то с файлом forfiles.exe
ссылочку или в ПМ Заранее Спасибо
Автор: KapralBel
Дата сообщения: 20.01.2006 17:58
valdi77
Выслал на е-майл из профиля
Автор: MasterTheMAC
Дата сообщения: 20.01.2006 21:50
koart

А если вручную делать "Завершение работы" - выключается тогда?
Автор: shs
Дата сообщения: 23.01.2006 09:19

Цитата:
Цитата:И можно ли пикнуть спикером из батника?


Код:

@ECHO OFF
ECHO N BEEP.COM>BEEP.SCR
ECHO E 0100 B0 07 CD 29 C3>>BEEP.SCR
FOR %%A IN (RCX 0005 W Q) DO ECHO %%A>>BEEP.SCR
DEBUG<BEEP.SCR>NUL
DEL BEEP.SCR



Рядом с этим батником будет создан BEEP.COM(5 байт). Кинь его в директорию, прописанную в PATH, %windir%\system32 например, и у тебя будет своя команда BEEP. Пипикай на здоровье.
Зачем так сложно? достаточно вывести в стандартный выходной поток символ с ASCII кодом 7.
т.е. получаем такой код:
echo ^G

ЗЫ На всяк случай, если вдруг кто-нить не знает/не помнит, то для того, чтобы ввести символ с определенным ASCII-кодом необходимо прижать <Alt> и, неотпуская его, на дополнительной цифровой клавиатуре набрать код символа.
Автор: Zbios
Дата сообщения: 23.01.2006 12:38
народ, подскажите, плиз, как создать новую тему?
Автор: vu1tur
Дата сообщения: 23.01.2006 13:09
Zbios
Вот здесь почитать сначала:
http://forum.ru-board.com/topic.cgi?forum=13&topic=1720#1

Ну а создать — нажать на кнопочку «новая тема», сразу под «Страницы форума: 1 2 3...»
Автор: wladx
Дата сообщения: 23.01.2006 15:55
Здравствуйте!

Подскажите пожалуйста как можно решить следующую задачу средствами *.bat/*.cmd в WinXP:

Имеется локальная сеть (192.168.0.xxx/255.255.255.0)
все IP-статические, на 192.168.0.1-шлюз

Собственно вопрос:
Как научить шлюзовую машину самостоятельно выключаться после того как последний пользователь выключил свой компьютер.

Автор: KapralBel
Дата сообщения: 23.01.2006 17:08
wladx

Код:
@Echo Off
Set cWork=0
For /l %%a In (2,1,254) Do Call :CompWork 192.168.0.%%a
If %cWork%==0 (ShutDown /?)
GoTo :EOF

:CompWork
Echo Ping %1
Ping -n 1 %1 >Nul
If ErrorLevel 1 (Goto :EOF)
If ErrorLevel 0 (Set cWork=1)
GoTo :EOF
Автор: wladx
Дата сообщения: 24.01.2006 11:55
2 KapralBel

БАльшое спасибо! Красивое решение.

Ещё задачка:
Машина загружается в DOS (например 6.22 или 7.0(Windows 9x) т.е. все ограничения
command.com, выполняется некий bat-файл

code:
copy x:\filename.ext y:\dirname

размер "filename.ext" нам неизвестен, количество свободного места на диске "y:" тоже

Вопрос: как обработать возможную ошибку ?


Автор: KapralBel
Дата сообщения: 24.01.2006 12:40
wladx
Встроенными средствами command.com кажеться не решить
Проверить не могу ибо 98-й уже нет
Автор: MasterTheMAC
Дата сообщения: 25.01.2006 15:07
wladx

Errorlevel проверяй после команды copy. Если больше 0, значит были ошибки при копировании.

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Вернуть библиотеку АТМ (поддержка шрифтов Type 1)


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