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

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

Автор: SymA
Дата сообщения: 17.10.2008 02:10
Необходимо проверить запущен ли процесс. Если нет - то запустить его. Направте мнея =)


Код: ping -w 5000 -n 1 mail.ru || tasklist | find "AdMunch.exe"&start "" "C:\Program Files\Ad Muncher\AdMunch.exe"&tasklist | find "dmaster.exe"&start "" "C:\Program Files\Download Master\dmaster.exe" -autorun
Автор: Re0g
Дата сообщения: 17.10.2008 11:19
Elroir, ещё вопрос:

Код: for /f "tokens=3 delims= " %%k in ('reg query "HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0" /v ~MHz') do set /a MHz=%%k
echo %MHz% >> 1.txt
Автор: igor_andreev
Дата сообщения: 17.10.2008 12:25
Re0g

Цитата:
Как пеобразовать число 1219912344 в 28.08.2008 11:32:24

Это количество секунд, прошедшее с полночных склянок 1 января 1970 года до инсталляции
http://support.microsoft.com/?id=232227
На vbs вот так:

Код:
Set WshShell = WScript.CreateObject("WScript.Shell")
TimeStamp = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\installdate")
WScript.Echo DateAdd("s", TimeStamp, DateSerial(1970, 1, 1))
Автор: Re0g
Дата сообщения: 17.10.2008 15:38
igor_andreev, спасибо.
Ну всё таки, если не сложно, как в bat-файле это посчитать, ведь команда systeminfo как-то это делает.
Автор: Elroir
Дата сообщения: 17.10.2008 20:01
Re0g

Цитата:
если не сложно, как в bat-файле это посчитать

В том-то и дело, что сложно.
Автор: SymA
Дата сообщения: 17.10.2008 21:22
Повторюсь:
помогите написать бат, который искал бы в tasklist запущенный процесс ("magеnt.exe" к примеру) и если он не запущен, то запускал его.

Пытался таким образом:

Код: tasklist | find "magent.exe"&&start "" "C:\Program Files\magent.exe"
Автор: 01MDM
Дата сообщения: 18.10.2008 05:13
SymA

Код:
tasklist | findstr /i magent.exe 1>nul || start "" "C:\Program Files\magent.exe"
Автор: Karrakurt
Дата сообщения: 18.10.2008 09:31
Бодрого времени суток.
А как можно перенести одну длинную строку с путями имеющими пробелы на несколько?
Этот пример:

Код: SET variable=^
One ^
Two ^
Three
Автор: Elroir
Дата сообщения: 18.10.2008 11:32
Karrakurt

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

А в чем проблема? Этот способ и для второго случая работает отлично.
Автор: Karrakurt
Дата сообщения: 18.10.2008 12:35
2 Elroir:
Да вот видимо нет, в ответ на этот скрипт:

Код: @ECHO off
CHCP 1251
SET path=^
C:\Documents and Settings\All Users ^
C:\Program Files\Common Files ^
%SYSTEMROOT%\Connection Wizard


ECHO %path%
FOR %%i IN (%path%) DO (
    ECHO %%i
    )
PAUSE
Автор: Nagual
Дата сообщения: 18.10.2008 13:12
Karrakurt
надо удалить разделители

Код:
@ECHO off
CHCP 1251
SET path=^
C:\Documents and Settings\All Users ^
C:\Program Files\Common Files ^
%SYSTEMROOT%\Connection Wizard


ECHO %path%
FOR
/f "delims=" %%i IN (%path%) DO (
ECHO %%i
)


Добавлено:
внимательно выкуривай for/? и set/?
Автор: Chhag
Дата сообщения: 18.10.2008 15:08
Помогите, уважаемые.
Надо в батнике зайти телнетом по адрессу 192.168.1.111, в ответ на запрос
Password:
ввесьти этот самый пароль, и выполнив команду
reload
выйти из устройства по
exit
и закрыть этот самый батник. Вроде все просто- но вот пароль вводиться не хочет...
Автор: virtuNBK
Дата сообщения: 19.10.2008 14:31
написал скриптец парсит файлик при нахождении нужной строки пишет время

Код:
:st
@if exist *.txt del *.txt
@ping -n 3 127.0.0.1 > NUL
@find "искомая строка" 7E21F38Ad01 | c:\gawk\awk -f c:\gawk\t.awk
@if exist dkor.txt (@echo "нашол " в $T|C:\gawk\curtime32) else (GOTO st4)
Автор: dj_Diesel
Дата сообщения: 19.10.2008 17:56
возможно этот вопрос звучал сорри
вообщем нужно чтобы при запуске батника спрашивался пароль
если пароль неправильный сообщение неправильно и reboot
если правильно то ничего дальше идут действия
Автор: Craager
Дата сообщения: 20.10.2008 13:50
Помогите создать батник, требуется скопировать на рабочий стол ярлык и чтобы он ещё открылся... батник и ярлык будет находится в SFX архиве. Как это можно реализовать?
Автор: SageNS
Дата сообщения: 20.10.2008 15:04
Есть файл file.txt содержанием sdgsga:sdgdag:sdgsag:sdgasg:dsfgas:sdgasg: Генерируестя скриптом на питоне, таких наименований может быть до 1000, нужно разделить их и для каждого объекта между : сделать действие использую

set a=1
for /f "tokens=* delims=:" %%i in (C:\file.txt) do (
set group=%%i
действие над group
)

Но где-то туплю, не подскажите где именно?
Автор: Elroir
Дата сообщения: 20.10.2008 16:33
dj_Diesel

Цитата:
вообщем нужно чтобы при запуске батника спрашивался пароль
если пароль неправильный сообщение неправильно и reboot
если правильно то ничего дальше идут действия


Код:
@echo off
setlocal
set /p pass="Please, enter password : "
if not "%pass%"="12345678" (
echo The password is wrong, rebooting....
shutdown -r -f
goto :EOF
)
...
...
...
Автор: Taciturn
Дата сообщения: 20.10.2008 22:48
Можно ли как-нибудь проверить наличие у пользователя администраторских прав, желательно с помощью встроенных средств или с помощью какой-нибудь небольшой программы (килобайт 50, не больше)?
Автор: igor_andreev
Дата сообщения: 20.10.2008 23:28
Taciturn

Цитата:
желательно с помощью встроенных средств

В гугле набери "isadmin + vbscript"

Цитата:
с помощью какой-нибудь небольшой программы (килобайт 50, не больше)?

На выбор isadmin.exe от разных производителей
http://diamondcs.com.au/consoletools/isadmin.php
http://www.westmesatech.com/wast.html
http://www.otbsw.com/

Автор: Taciturn
Дата сообщения: 21.10.2008 11:11
igor_andreev
Спасибо, первая и третья программы некорректно работают при включённом UAC, а вот вторая то что надо!
Автор: monsoon
Дата сообщения: 21.10.2008 15:04
Из шапки "Работа с текстом, датой и файлами" -> "Чтение из файлов содержащих ключи и значения (подобно структуре .ini файлов)" приводится пример ViSiToR:
Код: Set FileToRead=data.cfg
Set Key=full
For /F "usebackq delims=" %%i In (`Find /I "%Key%=" %FileToRead%`) Do Set Value=%%i
Echo %Value:~+5%
Автор: igor_andreev
Дата сообщения: 21.10.2008 15:59
monsoon
типа такого

Код:
FOR /F "TOKENS=1* DELIMS==" %%A IN ('MORE %FileToRead% ^| FIND /I "%Key%"') DO IF NOT DEFINED VALUE SET "VALUE=%%B"
Автор: monsoon
Дата сообщения: 21.10.2008 17:25
igor_andreev
Так тоже получается только последнее значение.

Вообщем, получилось с моим вариантом, если добавить eol=- или skip=2

Добавлено:
а можно не добавлять eol или skip, а вместо find написать findstr
Автор: dj_Diesel
Дата сообщения: 21.10.2008 19:06
Elroir
Большое Спасибо!
Автор: igor_andreev
Дата сообщения: 21.10.2008 21:44
monsoon

Цитата:
Так тоже получается только последнее значение

Ложь! Извольте обьясниться, сударь! [схватился за эфес шпаги]

test.ini

Код:
mykey=1
mykey=2
mykey=3
Автор: sL4yer
Дата сообщения: 22.10.2008 00:17
Всем привет. Хочу попросить написать такую не хитрую "игру". Игра заключается в том, что:
1. Компютер "загадывает" любое число от 1 до 10.
2. Выводит мне на экран сообщение что он загадал число "Y" от 1 до 10.
3. Просит меня ввести это число.
4. Дале если я не угадал, то выводит на экран сообщение о том, что я не угадал. Если же угадал, пишет что я угадал и завершает програму. У меня может быть только 3 попытки, если я 3 раза не угадал, то выводит на екран сообщение что мои попытки исчерпаны и завершает програму.

Буду благодарен, если организуете такое
Автор: SageNS
Дата сообщения: 22.10.2008 01:44
sL4yer
Конечно немного не в тему, но на всякий случай решение, написанное на питоне...

http://fileshare.in.ua/1303059

Добавлено:
А вот это же решение для батника


Код:
@echo off

set i=0
echo Zagadyvaiu chislo...
:rand
set chislo=%random%
if %chislo% GTR 10 goto rand
if %chislo% EQU 0 goto rand

echo Chislo zagadano! Est 3 popytki!

:enter
set /p "ent=Chislo : "
set /a i=%i%+1

if %ent% EQU %chislo% (
echo Chislo ugadano!
pause
exit
)


if %i% LSS 3 (
goto enter
)

if %i% EQU 3 (
echo Game Over
pause
)
Автор: sL4yer
Дата сообщения: 22.10.2008 06:48

Цитата:
А вот это же решение для батника

Премного благодарен. Только меня заинтересовали 3 строчки:

Код:
@echo off
cls

set i=0
echo Setting a number...
:rand
set number=%random%
if %number% GTR 10 GOTO rand
if %number% EQU 0 GOTO rand


echo The number is setted! You have 3 tries!

:enter
set /p "ent=Enter the number : "
set /a i=%i%+1
if %ent% GTR 10 (
echo You have entered the number bigger then 10, try again!
GOTO enter
)

if %ent% NEQ %number% echo You have entered a bad number, try angain!
if %ent% EQU %number% (
echo YOU WIN!!! Now program will exit, wait 5 seconds...
ping 127.0.0.1 -n 5 >nul
exit
)

if %i% LSS 3 GOTO enter

if %i% EQU 3 (
echo Game Over! Now program will exit, wait 5 seconds...
ping 127.0.0.1 -n 5 >nul
)
Автор: 01MDM
Дата сообщения: 22.10.2008 06:51
igor_andreev

Цитата:
достал попкорн, устроился поудобнее...


Если запускать из одной консоли несколько раз то так и будет: value равно 3, setlocal исправит. Или просто сделать выход из цикла for по goto.
Автор: SageNS
Дата сообщения: 22.10.2008 07:52
sL4yer
нЭд

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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