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

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

Автор: uZver
Дата сообщения: 07.09.2007 16:49
[more=упс, ответ 01MDM более правильный. я считал что "\\" условие задачи]
XMblPb

Код: reg add HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\AuthorizedApplications\List /v "C:\\Program Files\\Symantec\\LiveUpdate\\LuComServer_3_0.EXE" /t REG_SZ /d "C:\\Program Files\\Symantec\\LiveUpdate\\LuComServer_3_0.EXE:*:Enabled:LuComServer_3_0.EXE" /f
Автор: 01MDM
Дата сообщения: 07.09.2007 16:52
Название ключа сократил и значение поместил к кавычки (т.к с пробелами), двойной слешь не нужен, это не reg-файл.
Автор: BELOV
Дата сообщения: 07.09.2007 16:56
Мне нужно подобное timex : надо чтобы с удаленного ПК(УПК) СКРЫТНО отсылался e-mail при смене Динамического IP. Или хотя бы не при смене IP, а регулярно(раз в час), тупо отсылался e-mail c удаленного ПК. Требования:
-легкая установка сервиса на УПК
-скрытность сервиса в настройках (Программы, Уст и Уд Программ)
-скрытность функционирования (при отсылке e-mail)
Самое лучшее, это конечно при смене IP.
PS:timex поясни твою задачу: зачем с вымышленного адреса?
Автор: Rotorina
Дата сообщения: 07.09.2007 21:28
01MDM
Сразу не смог отписаться.
Всё решено, сенкс
Автор: timex
Дата сообщения: 07.09.2007 21:30

Цитата:
PS:timex поясни твою задачу: зачем с вымышленного адреса?


потому что отвечать на него не потребуется. можно и с реального, но толку от этого - никакого...



Цитата:
blat.exe - -server 192.168.1.1 -to mail@mail.ru -from test -f our@mail.ru -charset windows-1251 -r -d -subject "test" -body "test"


uZver, т.е. этой строчки вполне достаточно, чтобы письмо было отправлено?
А зачем нужен параметр "-server 192.168.1.1"?
Автор: Nekt
Дата сообщения: 08.09.2007 01:25
что за команда убивает процесс?
Автор: Maza Faka
Дата сообщения: 08.09.2007 06:56
Rotorina

Цитата:
Всё решено, сенкс


Цитата:
Необходимо выполнить двойную сортировку по расширению и имени

Так ведь задачка-то не решена, если следовать твоему условию

Добавлено:
Nekt

Цитата:
что за команда убивает процесс?

Taskkill /?
Автор: Rotorina
Дата сообщения: 09.09.2007 19:54
Maza Faka
Я её модернизировал

Добавил позже :
Как автоматизировать определение PID только что запущенного процесса из этого же батника и убивать процесс по PID-y?

Суть, в том, что постоянно запускается процес, например, ping, c разных батничков.

Код:
start /b ping google.com
taskkill /f /im ping
Автор: Elroir
Дата сообщения: 09.09.2007 21:45
Я вернулся

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

Код:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1,2" %%a in ('tasklist ^| find /i "ping"') do (
set "pings_pid_list=!pings_pid_list! %%b")

start /b ping -n 30 www.google.com

for /f "tokens=1,2" %%a in ('tasklist ^| find /i "ping"') do (
echo %pings_pid_list% | find "%%b">nul
if not !errorlevel!==0 (
taskkill /F /PID %%b>nul))
Автор: utka00
Дата сообщения: 09.09.2007 21:55
У меня совсем уж наверно невыполнимая задача: нужно в файле найти определенное число (повторяется несколько раз) и заменить его на случайно сгенерированное причем каждый раз на новое.
Возможно ли такое?
Автор: Elroir
Дата сообщения: 09.09.2007 22:09
utka00
Число отделено пробелами или как-то еще?
А то, например, ищем число 234, а найдем 12345.
Автор: utka00
Дата сообщения: 09.09.2007 22:20
Elroir
перед ним пробел, дальше новая строка, и еще желатьельно чтоб можно было задавать диапазон для первой цифры (мне надо от 1 до 4)
Автор: Elroir
Дата сообщения: 09.09.2007 22:27
utka00
Насчет диапазона первой цифры не понял. При запуске батника дать первую цифру "случайных" чисел? Сколько цифр должно быть в этом случайном числе?
Автор: utka00
Дата сообщения: 09.09.2007 22:34
Elroir
число должно быть семизначным а первая цифра в нем от 1 до 4
Автор: Rotorina
Дата сообщения: 09.09.2007 23:49
Elroir
С возвращением!!!

Работает код без проблем, сенкс
Автор: sv9205
Дата сообщения: 10.09.2007 00:30
В теме не ответили и попробую задать вопрос здесь, возможно ли батник создать и решить?

Цитата:
http://forum.ru-board.com/topic.cgi?forum=5&topic=22080&start=640#10
Как возможно завернуть автоматом все сразу, WinRAR архивы второй раз?(по два архива в один независимо).
Спрашиваю, для того, чтобы релиз который идёт в папке по 50 мб завернуть по два оригинальных архива в один независимо
и при удалении с обменника, человек сможет докачать оригинальные с другого места.
Автор: Elroir
Дата сообщения: 10.09.2007 00:54
utka00

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


Код:
@echo off
call :sbs_create
setlocal enabledelayedexpansion
:: main section
del /q /f temp1.txt 2>nul
copy "%~1" temp1.txt>nul
:again
type temp1.txt | find " %2">nul
if %errorlevel%==0 (
call :random7
sbs2.com 1 " %2" " !rnum!" < temp1.txt > temp2.txt
del /q /f temp1.txt
ren temp2.txt temp1.txt
goto :again)
:: Delete the SBS2.COM program
del /q sbs2.com

ren "%~1" "%~1.bak"
ren temp1.txt "%~1"

goto :EOF
::end of main section

:random7
set "rest="
set /a "fdigit=(!random! %% 4) + 1"
for /l %%a in (1,1,6) do (
set "num=!random:~-1!"
set "rest=!rest!!num!")
set "rnum=!fdigit!!rest!"
goto :EOF
:sbs_create
echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>"sbs2.com"
echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>>"sbs2.com"
echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>>"sbs2.com"
echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>>"sbs2.com"
echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>>"sbs2.com"
echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>>"sbs2.com"
echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>>"sbs2.com"
echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>>"sbs2.com"
echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>>"sbs2.com"
echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>>"sbs2.com"
echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>>"sbs2.com"
Автор: utka00
Дата сообщения: 10.09.2007 15:34
Elroir
Ты мегачел!
Автор: Evgeniy15
Дата сообщения: 10.09.2007 21:48
Помогите пожалуйста!

Необходимо переименовать папки, которые начинаются с цифры. "." заменить на "-", если в расширении меньше двух знаков, то добавить первым "0"

Заранее благодарен
Автор: Elroir
Дата сообщения: 10.09.2007 22:06
Evgeniy15

Код:
@echo off
setlocal enabledelayedexpansion
for /d %%a in (*.*) do (
set "dir_name=%%~na"
set "dir_ext=%%~xa"
for %%b in (1 2 3 4 5 6 7 8 9 0) do if "!dir_name:~0,1!"=="%%b" set "doit=yes"
if defined doit (
set "dir_name=!dir_name:.=-!"
if "!dir_ext:~2,1!"=="" set "dir_ext=.0!dir_ext:~1!"
ren "%%a" "!dir_name!!dir_ext!"
set "doit="))
Автор: Evgeniy15
Дата сообщения: 10.09.2007 22:19
Скопировал как есть в бат файл и запустил. Ничего не произошло.
Что я делаю не так?
Автор: Elroir
Дата сообщения: 10.09.2007 22:23
Evgeniy15
Батник запускал там, где находятся директории, которые надо переименовать?
Автор: Evgeniy15
Дата сообщения: 10.09.2007 22:28
Да.
Автор: Elroir
Дата сообщения: 10.09.2007 22:35
Evgeniy15
Приведи пример названия директории, которую нужно переименовать.
Какая версия Windows?
Автор: Evgeniy15
Дата сообщения: 10.09.2007 22:38
Прошу прощения! Произошло!
Расширения поменялись. точка не поменялась на "-" вот я и не заметил.
Если можно прокоментировать что делает каждая строка.
Большое спасибо!
Автор: Elroir
Дата сообщения: 10.09.2007 22:56
Evgeniy15
Вообще-то, единственная точка, которая должна оставаться в названии файла - это точка отделяющая расширение...

Код:
@echo off
:: Включаем расширения переменной среды с задержкой
setlocal enabledelayedexpansion
:: Для каждой поддиректории в текущей директории
for /d %%a in (*.*) do (
:: Определяем переменную dir_name, в которую записываем имя директории
set "dir_name=%%~na"
:: Определяем переменную dir_ext, в которую записываем расширение директории
set "dir_ext=%%~xa"
:: Для каждой из цифр в скобках проверяем -
:: если первый символ в имени директории равен этой цифре -
:: определяем переменную doit.
for %%b in (1 2 3 4 5 6 7 8 9 0) do if "!dir_name:~0,1!"=="%%b" set "doit=yes"
:: Если переменная doit определена -
if defined doit (
:: Заменяем все точки в имени директории на "-"
set "dir_name=!dir_name:.=-!"

:: Если в расширении меньше 2-х символов - подставляем перед ним "0"
if "!dir_ext:~2,1!"=="" set "dir_ext=.0!dir_ext:~1!"
:: Переименовываем директориию
ren "%%a" "!dir_name!!dir_ext!"
:: Уничтожаем переменную doit
set "doit="))
Автор: Evgeniy15
Дата сообщения: 10.09.2007 23:15
Добавил еще одну строку для замены "." на "-" в расширениях
Заменило везде, а там где расширения не было, добавилось ".=-"


@echo off
setlocal enabledelayedexpansion
for /d %%a in (*.*) do (
set "dir_name=%%~na"
set "dir_ext=%%~xa"
for %%b in (1 2 3 4 5 6 7 8 9 0) do if "!dir_name:~0,1!"=="%%b" set "doit=yes"
if defined doit (
set "dir_name=!dir_name:.=-!"
set "dir_ext=!dir_ext:.=-!"
if "!dir_ext:~2,1!"=="" set "dir_ext=-0!dir_ext:~1!"
ren "%%a" "!dir_name!!dir_ext!"
set "doit="))
Автор: Elroir
Дата сообщения: 10.09.2007 23:22
Evgeniy15
Чего-то я не понимаю
Как в расширении может быть точка?
Автор: Evgeniy15
Дата сообщения: 10.09.2007 23:27
Имя папки 123.1 должно выглядеть 123-01
Автор: Elroir
Дата сообщения: 10.09.2007 23:32
Evgeniy15
А... вот теперь понятно - присоединяем расширение к имени.
Убери строчку set "dir_ext=!dir_ext:.=-!"

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879

Предыдущая тема: Problemi s zagruzkoy XP!


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