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

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

Автор: 01MDM
Дата сообщения: 28.10.2008 22:41
sL4yer


Код:
@echo off
for /l %%i in (1,1,255) do (
ping -n 1 192.168.1.%%i | findstr "TTL=" 1>nul && (
echo 192.168.1.%%i is UP
) || (
echo 192.168.1.%%i is DOWN
)
)
Автор: dimpase
Дата сообщения: 29.10.2008 09:52
Еще раз дорого вам времени суток...

Цитата:
Приве6т люди!!Как делишки?
Скажмите как сделать ввод пользователя по маске.
Например надо чтобы пользователь ввел телефон в таком формате х ххх ххх ххх ххх
или 8(код)ххх ххх ххх
Если не подходит то переходим к ошибке и возвращаемся к вводу.
Заранее спасибо.

Автор: igor_andreev
Дата сообщения: 29.10.2008 10:29
dimpase
Повторять то вопрос зачем на каждой странице? Регулярное выражение пиши для grep
Для X XXX XXX XX XX(8 921 725 00 00)

Код:
@echo off
:loop
set /p "phone_number=Write here:"
cls
echo %phone_number% | grep -q -E "[0-9]{1} [0-9]{3} [0-9]{3} [0-9]{2} [0-9]{2}" || goto :loop
echo %phone_number%
pause
Автор: dimpase
Дата сообщения: 29.10.2008 14:36
igor_andreevПасибочки большое.Вы просто не представляете как мне помогли.Мне некогда было просто искать.
Автор: godemode
Дата сообщения: 29.10.2008 15:10
Здравствуйте.

У меня небольшая проьблема.Веду backup своей базы данных.ежедневный

"%PROGRAMFILES%\WinRar\rar" a -r c:\Bakup_baza\ -¤Ґаа ©вЁ-Ј.rar -ag+DD-MMM-YYYY-HH-MM -m5 -dh -t -idc "c:\Bakup_baza\ -¤Ґаа ©вЁ-Ј.mdb"

т.е. получается 29-Oct-2008-14-39андеррайтинг.rar

с помощью нее создаю архив с датой и временем.Проблема в том что чистить его в ручную очень не удобно.

Возможно ли создание батника для удаления всех архивов в именах которых стоит дата отстающая от сегодняшней на 10 дней?

Заранее спасибо.
Автор: monsoon
Дата сообщения: 29.10.2008 18:24
В теме встречаются примеры с random для конкретного случая, например, %random% %% 4 - генерация чисел от 0 до 3
Вопрос к гуру:
можно сделать использование random более универсальным, заданием диапазона для генерируемых значений или хотя бы max значения?
Дополнительно, при вызове в цикле добавив возможность исключить повторяющиеся значения.
Автор: U235
Дата сообщения: 29.10.2008 18:56
monsoon
Вот пример арифметических операций, с помощью которых можно генерировать случайные числа в заданом диапазоне и присваивать их переменной var, см. справку по set:

Код: set /a var=2-%random%/6000
Автор: sheko1k
Дата сообщения: 29.10.2008 20:19

Цитата:
Возможно ли создание батника для удаления всех архивов в именах которых стоит дата отстающая от сегодняшней на 10 дней?


Таже проблема.Бился об нее недели 2 результата никакого(( Меж тем для backup па штука очень полезная....
Автор: igor_andreev
Дата сообщения: 29.10.2008 21:02
godemode
sheko1k
Угадайте, вам первым в голову пришла такая гениальная идея - удалять старые бэкапы? Читайте несколько частей тем "Задачи на bat-файлах" и "Командная строка, батники, сценарии", ссылки в шапке. Найдете варианты с dir, forfiles, vbscript, раз *надцать уже спрашивали. Можно просто у гугля тупо спросить "delete files older then + batch", на первой же странице ответы будут и не надо две недели бицца...
Добавлено
Хренасе, я англичанин, однозначно... Правильно то "older than"... Но гугль даже с грамматическими ошибками находит примеры батников
Автор: Shadowland
Дата сообщения: 30.10.2008 00:50
2Nagual
rar/? посмотрел...
понятнее не стало

напомню - требовалось :

Цитата:
в папке Svalka есть куча *.rar файлов и их описаний *.rar.txt
в некторых *.rar файлах есть папка "заработок в интернете" или "ЗАРАБАТЫВАЙ с НАМИ!!!" или "+" или "Как заработать в интернете"
или
файлы "GOLD-аккаунт на Depositfiles.doc" и "03.04.08.jpg" или "Прочитайте меня!!!.doc" и "Thumbs.db"
требуется (если они есть) удалить все эти пакпки и файлы из архивов оставив остальное содержимое

Автор: Hirurg111
Дата сообщения: 30.10.2008 10:21
Здесь представлен код который я нашел здечь на форуме. Он переименовывает файл на дату создания файла и в конц добавляет номер (чтобы файлы не совпадали). Никак не могу придумать как дату создания файла добавлять к существующему имени если точное имя неизвестно. а расширение константа.
И каким образом сделать так чтобы после переименования файл копировался в папку по дням (т.е. год\месяц\день не создавая папки в ручную и не прописывая пути в файле)





@Echo Off

Set fExt=dat
Set fCount=0
For %%a In (*.%fExt%) Do @Call :Rena %%a %%~ta
GoTo :EOF

:Rena
Set /a fCount=%fCount%+1
Set fName=%1
Set fDate=%2
Set fDay=%fDate:~0,2%
Set fMonth=%fDate:~3,2%
Set fYear=%fDate:~6,4%
Set fNewName=%fYear%%fMonth%%fDay%%fCount%
If Exist %fNewName%.%fExt% Set fNewName=%fNewName%%fCount%
Ren %fName% %fNewName%.%fExt%
GoTo :EOF
Автор: Joolz
Дата сообщения: 30.10.2008 12:29
Нужна помосч
Нужно изменить параметры IE, чтобы обращения к серверу 192.168.10.10 не проходило через прокси, фактически нужно изменить запись в реестре, дописав в вонец парамтра этот адрес. Но на втором цикле что-то все вылетает. Т.Е. если oldval=%%d - все нормально, если пытаться сделать oldval=%%e - вылетает. В чем трабл?

Код: @echo off
set pc=%1
if "%pc:~0,2%"=="\\" set pc=%pc:~2%
if /i "%pc%"=="" set pc=%computername%
Ping -n 1 %pc% >Nul
If ErrorLevel 1 (
ECHO Компьютер %pc% не доступен по сети.
ping -n 2 127.0.0.1 >Nul
goto :EOF
)

set dpath=Software\Microsoft\Windows\CurrentVersion\Internet Settings

for /f "tokens=*" %%a in ('reg query \\%pc%\HKU ^| findstr "HKEY_USERS\S-1-5-21" ^| findstr /V "Classes"') do set rpath=%%a\%dpath%

for /f "tokens=3,*" %%d in ('reg query "\\%pc%\%rpath%" /v ProxyOverride ^| findstr /i "ProxyOverride"') do set oldval=%%d
echo %oldval%
pause
rem set newval=%oldval%;192.168.10.10
rem reg add \\%pc%\%rpath% /v ProxyOverride /t REG_SZ /d %newval% /f
Автор: 01MDM
Дата сообщения: 30.10.2008 15:11
Joolz

Цитата:
Т.Е. если oldval=%%d - все нормально, если пытаться сделать oldval=%%e - вылетает. В чем трабл?


Покажи что должно выводить `reg query ..... /v ProxyOverride`. У меня похожего параметра в реестре нет.
Автор: monsoon
Дата сообщения: 30.10.2008 16:06
U235
Арифметических операций гораздо больше и о команде set я читал до того, как задал вопрос.
Вот пример решения задачи на clipper c указанием не диапазона, а лишь max значения:
Код: FUNCTION Random(max)
Local ttx,ttj,tty,ttk,ttl,ttz,ttt
ttx = seconds() / 100
ttj = (ttx - int(ttx)) * 100
tty = log(sqrt(seconds() / 100))
ttk = (tty - int(tty)) * 100
ttl = ttj * ttk
ttz = ttl - int(ttl)
ttt = int(ttz * (max+1))
return(ttt)
Автор: 01MDM
Дата сообщения: 30.10.2008 16:41
monsoon

Цитата:
можно сделать использование random более универсальным, заданием диапазона для генерируемых значений или хотя бы max значения?
Дополнительно, при вызове в цикле добавив возможность исключить повторяющиеся значения.


Т.е, допустим надо сгенерировать случайную последовательность от 0 до 99:

Код:
@echo off
setlocal
for /l %%i in (0,1,99) do call:rand %%i
for /f "tokens=3 delims=_=" %%i in ('set rand_') do echo %%i
goto:eof

:rand
set rand_%random%%random%=%1
Автор: monsoon
Дата сообщения: 30.10.2008 18:47
01MDM
Почти в яблочко. Но нужен не весь дипазон чисел, а определенное количество случайных значений из этого диапазона.
Автор: Nagual
Дата сообщения: 30.10.2008 18:55
Shadowland
Код:
@echo off&chcp 1251>nul
set
ft="заработок в интернете" "ЗАРАБАТЫВАЙ с НАМИ!!!" "+" "Как заработать в интернете" "GOLD-аккаунт на Depositfiles.doc" "03.04.08.jpg" "Прочитайте меня!!!.doc" "Thumbs.db"
for %%a in (*.rar) do rar d %%a %ft%
Автор: 01MDM
Дата сообщения: 30.10.2008 21:46
monsoon

Цитата:
Но нужен не весь дипазон чисел, а определенное количество случайных значений из этого диапазона.


Например нужно 5 значений из диапазона 0-99:

Код:
@echo off
setlocal
for /l %%i in (0,1,99) do call:rand %%i
for /f "tokens=3 delims=_=" %%i in ('set rand_') do call:res %%i
goto:eof

:rand
set rand_%random%%random%=%1
goto:eof

:res
set /a cnt+=1
if %cnt% leq 5 echo %1
Автор: Shadowland
Дата сообщения: 31.10.2008 00:04
2Nagual
спасибо большое
а можно както сделать чтобы он русские имена раров понимал ?
и запароленные пропускал...
Автор: monsoon
Дата сообщения: 31.10.2008 11:43
01MDM
просто класс!!! спасибо!!!
интересно, что for /f отбирает переменные set rand_..... по возрастанию значения в имени.

Вообще, получилось универсальное использование random и мне кажется, ему место в шапке.

Для большей наглядности в свой батник я добавил переменные:
set minr=0
set maxr=99
set maxcnt=1
и их использование в строках:

Код: for /l %%i in (%minr%,1,%maxr%) do call:rand %%i
...
if !cnt! leq !maxcnt! (echo %%i) else (goto:eof)
...
Автор: Nagual
Дата сообщения: 31.10.2008 12:02
Shadowland
можно
Код:
@echo off
set ft="заработок в интернете" "ЗАРАБАТЫВАЙ с НАМИ!!!" "+" "Как заработать в интернете" "GOLD-аккаунт на Depositfiles.doc" "03.04.08.jpg" "Прочитайте меня!!!.doc" "Thumbs.db"
for /r . %%a in (*.rar) do rar d -p- "%%a" %ft%
Автор: Joolz
Дата сообщения: 31.10.2008 12:49
01MDM
ProxyOverride показывает то, что можно найти по пути IE>Сервис>Свойства обозревателя-Подключения-[Настройка LAN]>Прокси-сервер-[Доплнительно...]>Исключения

Обычто там или пусто, loclhost или 127.0.0.1.

Соответственно у меня запрос reg query выводит:
Код: ! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
ProxyOverride REG_SZ dc1; dc2; 192.168.0.119; 192.168.*;<local>
Автор: 01MDM
Дата сообщения: 31.10.2008 15:22
Joolz

Убери запятую после 3: "tokens=3,*"

Такого ключа у меня нет, создал test со значением 123; 456; 789

Код:
@echo off
set rpath="hkcu\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

for /f "tokens=3*" %%i in ('reg query %rpath% /v test ^| findstr test') do echo %%i %%j
Автор: Shadowland
Дата сообщения: 31.10.2008 16:56
Nagual
пишет "невозможно открыть p-.rar" - там вроде -p- надо ...
как там(http://2cyr.com/decode/?lang=ru) так перекодировать ? - настройки win-1251 -> ibm866 ?
что можно сделать если оно спрятано во вложенной папке ? - в данном варианте оно не удаляет из вложенных и ключ -r не помогает... (тобишь зарарена папка, а в ней уже эти папки и файлы...)
Автор: Nagual
Дата сообщения: 31.10.2008 17:59
Shadowland
все верно, еснно -p- надо, поправил код
перекодировать не надо было, ладно держи в кодировке 1251
пересохрани код в кодировку 866

Добавлено:
или используй сервис из шапки
исходная кодировка: 1251
отображается как: ibm866

Добавлено:
Shadowland
для вложенных файлов пиши их относительных путь
set ft="dir\subdir\subsubdir\fn.ext" "..."

или распаковка во временную папку с удалением источника и обновление файлов с исключениями
Автор: Shadowland
Дата сообщения: 31.10.2008 18:46
Nagual
так папки там в каждом раре разные... иногда с именем архива совпадают...
можно там как-нибудь универсальную подстановку сделать или имя архива как вариант использовать ?
1 "оно" (это и в этой версии удаляетсяя)
2 "папка\оно" (папка - это любая папка ну типа "*\оно")

Автор: ruslanjuve
Дата сообщения: 31.10.2008 21:30
У меня такой вопрос (очень нужен ответ !) :

Я создал сервис с помошью instsrv.exe и мне выдает ошибку при старте - : Configuration Manager:The specified instance handle does not correspond to apresent device.

сервис работает на 50% , тоесть не все функции выполняет , как мне дать полный доступ сервису ? из ком. строки или батника ?


что-то типа этого :

instsrv "test 1" C:\WINDOWS\program.exe
regedit /s C:\WINDOWS\Temp\servsettings.reg
net start "test 1"

Автор: Nagual
Дата сообщения: 31.10.2008 23:27
Shadowland
не то что можно, даже нужно
я же привёл пример, смелей дорабатывай под свои нужды, пробуй больше, спрашивай меньше, делай больше масок, это не повредит, благо длина строки команды в системах NT составляет 32767 символов
Автор: Dexxy 88
Дата сообщения: 01.11.2008 05:47
Доброго всем времени суток.
Есть просьба: помогите написать батник - уже не первый час бьюсь.
Незнаю, может я не на том остановился - но я пытался сделать все на команде SET...
А вот и сама задача:
есть программка server.exe, запускается она тока из ком.строки с параметрами:
неизменными -start -port 21-admin_password qwerty -user open
переменной user_password asdfg
вот зтот самый asdfg хотелось бы писать с батника, чтоб он спрашивал что-то вроде Enter Password and press enter...
Очень надеюсь на помощь, а то уже надоело править батник перед каждым запуском.
Заранее спасибо
Автор: king_stiven
Дата сообщения: 01.11.2008 07:59
Dexxy 88

Код: set /p asdfg=Enter Password and press enter...
echo %asdfg%

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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