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

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

Автор: Nagual
Дата сообщения: 18.02.2007 03:33
:_write
cls && echo %* & PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && goto eof

вот так у меня получилось более менее похоже на письмо руками
попытался запихать каждое через локальную переменную, потерпел поражение, пришлось писать одним махом ((
Автор: Smitis
Дата сообщения: 18.02.2007 23:12
Nagual

Цитата:
cls && echo %* & PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && PING -n 1 -w 1000 loopback > NUL && goto eof

ё....
А зачем так много пингов? Одного разве не хватило бы? Увеличить задержку и всё.
Автор: ViSiToR
Дата сообщения: 19.02.2007 01:03
Скажите, а возможно батником вызвать DLL? типа DllCall - нужно вызвать user32.dll с параметрами, я кажется нашел способ обновить все открытые окна проводника.
Автор: Elroir
Дата сообщения: 19.02.2007 01:07
ViSiToR
rundll32.exe user32.dll, function_name param1 param2 ...
Видимо так. IMHO
Автор: ViSiToR
Дата сообщения: 19.02.2007 02:07
Elroir

Цитата:
Видимо так

Не получается - нужно запустить примерно так (это в AutoIt) :


Код: Dllcall("user32.dll", "long", "SendMessage", "hwnd", $hWnd, "int", 0x111, "int", 28931, "int", 0)
Автор: Elroir
Дата сообщения: 19.02.2007 02:33
ViSiToR
В первом столбце таблицы, которую выдает cmdow, как раз и находятся Win Handles.
Автор: K6
Дата сообщения: 19.02.2007 03:00
Кто может помочь сделать курсовик? Задание ниже...если что пишите на мыло или в ICQ

1) Создать командный файл, который позволяет по требованию пользователя:
1) распаковать архив формата arj в указанный каталог;
2) распаковать архив формата zip в указанный каталог;
3) если не указаны параметры командного файла, выводит подсказку.
Описать назначение команды tree, сравнить возможности этой команды в ОС WINDOWS XP и WINDOWS 9X.


2) Реализуйте командный файл в ОС Linux, который может выполнять следующие действия:
Вывести на экран содержимое корневого каталога, отсортированное по времени модификации файлов. В этом каталоге образовать свой пользовательский каталог, создать в нем файл, переименовать его, вывести содержимое файла на экран. Перенести данный файл в родительский каталог. Перейти в корневой каталог. Вывести на экран календарь на текущий год.
Сравнить возможности редактирования файлов в ОС Linux и WINDOWS.
Автор: ViSiToR
Дата сообщения: 19.02.2007 03:03
Elroir
Ладно, не для батников всё же задачка (тут уже вступает в разборку тяжелая артилерия , и команды батника уходят на задний фронт/фон)... если желаешь (или кто ещё), могу в ПМ выслать готовое решение на AutoIt - исходник и экзешник приложу).




Улучшил батник для помещения записи в реестр которая позволяет создавать батники из контекстного меню проводника:


Код:
@Echo off
MD "%windir%\SHELLNEW"
Echo ::--------------------------------------------> %windir%\SHELLNEW\BATHiK.bat
Echo ::Author: %username%>> %windir%\SHELLNEW\BATHiK.bat
Echo ::Creation Date/Time: %date%,%time:~0,-3%>> %windir%\SHELLNEW\BATHiK.bat
Echo ::Description: >> %windir%\SHELLNEW\BATHiK.bat
Echo ::-------------------------------------------->> %windir%\SHELLNEW\BATHiK.bat
Echo.>> %windir%\SHELLNEW\BATHiK.bat
Echo @echo off>> %windir%\SHELLNEW\BATHiK.bat
REG ADD "HKCR\batfile" /ve /t REG_SZ /d BATHiK /f
REG ADD "HKCR\.bat\ShellNew" /v FileName /t REG_SZ /d BATHiK.bat /f
Автор: Elroir
Дата сообщения: 19.02.2007 03:14
ViSiToR

Цитата:
если желаешь (или кто ещё), могу в ПМ выслать готовое решение на AutoIt - исходник и экзешник приложу

Спасибо, с удовольствием посмотрю. Когда мы обсуждали перезагрузку эксплорера, я полез в Autoit посмотреть, как там вызывается функция из библиотеки, но разбираться было лень

Цитата:
Creation Date/Time: %date%,%time:~0,-3%>> %windir%\SHELLNEW\BATHiK.bat

Там, вроде будет дата создания шаблона, нет?
Автор: K6
Дата сообщения: 19.02.2007 04:46
а мне поможете?
Автор: Elroir
Дата сообщения: 19.02.2007 05:14
K6
Если у тебя есть конкретные воросы - задавай.
Автор: Patron73
Дата сообщения: 19.02.2007 07:38
hi all
нужно с сети взять файлик и отправить его по фтп в опредленною папку
писал так:

Цитата:

ftp -s:d:\ftp\ftp.txt -nd
open 123.123.13.34
user юзверь на ftp
типа пароль
cd public_html
cd download
put \\comp1\files\files.txt

close
by


при запуске почемуто зацикливается на первой строке...
что я не так делаю?
Автор: rothman
Дата сообщения: 19.02.2007 07:54
FTP script должен выглядеть так :

---------------начало---------
open 213.242.13.34


user юзверь пароль
cd public_html
cd download
put \\comp1\files\files.txt
quit
---------------конец---------

после open... - 2 <Entera> (хрен его знает почему )
Автор: ViSiToR
Дата сообщения: 19.02.2007 09:30
Elroir

Цитата:
Там, вроде будет дата создания шаблона, нет?

Да , эх... всё у меня перемешалось.... AutoIt..... VBScript..... Batch.....


Цитата:
K6
Если у тебя есть конкретные воросы - задавай.

Глянь чуть выше, он их задал

P.S
См. в ПМ - ссылку кинул.
Автор: Elroir
Дата сообщения: 19.02.2007 10:32
ViSiToR

Цитата:
Глянь чуть выше , он их задал

Да... в 5 утра надо спать, а не в интернете сидеть

K6
Извини - недоглядел
Кстати, насчет Linux-а - лучше спросить в в соответствующей теме - http://forum.ru-board.com/topic.cgi?forum=65&topic=0630&start=20 или другой (поиском по словам shell и скрипт).

Добавлено:
Вот код батника для распаковки архивов:

Код:
::decompress.bat
@echo off
if "%~1"=="" goto help
if "%~2"=="" goto help
if /i "%~x1"==".arj" arj x %1 "-ht%~2" -y
if /i "%~x1"==".rar" rar x -y %1 "%~2"\
goto end
:help
echo Usage: decompress archive.ext destination_dir
echo archive.ext is the full name (with extension) of the ARJ or RAR arhive
echo destination_dir is the name of the destination directory for extraction
echo Note: arj.exe and rar.exe have to be in one of the PATH directories
:end
Автор: Tierchen
Дата сообщения: 19.02.2007 17:56
Ребята, поможите с инстукциями, как организовать поиск по реестру по обнаружению ключей / параметров или значений, содержащих заданное ключевое слово.

Пробую
reg query "HKLM" | find "keyword"
получаю
Error: Access is denied in the key HKEY_LOCAL_MACHINE\SECURITY

Ввожу
reg query "HKLM" /s | find "keyword"
получаю
Error: Access is denied in the key HKEY_LOCAL_MACHINE\SAM\SAM
Error: Access is denied in the key HKEY_LOCAL_MACHINE\SECURITY

Error: The system was unable to find the specified registry key or value

и как искать сразу по всем ключам - HKLM, HKCR, HKCU etc.?
Спасибо заранее!
Автор: Smitis
Дата сообщения: 19.02.2007 18:34
Tierchen

Цитата:
Error: Access is denied in the key HKEY_LOCAL_MACHINE\SECURITY

Ну, типа, права сначала надо получить/назначить на соответствующие разделы реестра.

Цитата:
и как искать сразу по всем ключам - HKLM, HKCR, HKCU

Экспортируй ветки в файлы, объедини их и ищи на здоровье.
Автор: sdaww
Дата сообщения: 19.02.2007 20:04
У юзера урезаны права по самое небалуйся, т.е. редактирование реестра невозможно стандартными средствами под его правами. Как сделать так, чтобы через политики домена можно было запустить скрипт редактирования реестра с правами Администратора домена? И насколько безопасно это будет?
Автор: igor_andreev
Дата сообщения: 20.02.2007 03:00
sdaww
Вопросы такого плана наверно лучше задавать где-нить в В помощь системному администратору » Групповые политики (Group Policy, GPO): документация, ссылки Там, в том топике сидят злобные админы, которые урезают права, они знают, зачем это делается и как с этим бороться.
Автор: vmix
Дата сообщения: 20.02.2007 09:34
vmix
Как же все-таки из командной строки отключить какое-то одно входящее VPN (pptp) подключение?
Автор: Smarsh
Дата сообщения: 20.02.2007 10:59
Добрый день господа форумчане.
Позвольте обратиться с вопросом.
Цель написания батника: бэкап почты на компах пользователей.
Решение: в реестре в ветке HKCU\Software\RIT\The Bat! хранится адрес папки почтовых ящиков. Надо получить его и запаковать все файлы в этой папке с *.tbb.
Для этих задач написал 2 батника:
1-ый rq1.bat
Цитата:

set OUTPUT=out.txt

if "%STDOUT_REDIRECTED%" == "" (
set STDOUT_REDIRECTED=yes
cmd.exe /c %0 %* >%OUTPUT%
exit /b %ERRORLEVEL%
)
chcp 1251
reg query "HKCU\Software\RIT\The Bat!" /v "working directory"
for /f "tokens=* usebackq" %%i in (`reg query "HKCU\Software\RIT\The Bat!" /v "working directory"`) do ( set VERSION=%%i)
call rg2.bat %version%

и 2-ой rg2.bat

Цитата:

’ҐЄгйЁ© Ї®зв®ўл© Є в «®Ј %4
md \_FILEBACKUP
chcp 1251
"c:\program files\winrar\rar.exe" a -r c:\_FILEBACKUP\backup_%username%.rar %4*.tbb

Да, вот чтобы понятнее было, команда c:\>reg query "HKCU\Software\RIT\The Bat!" /v "working directory"
Выдает результат

Цитата:
! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Software\RIT\The Bat!
working directory    REG_SZ    c:\почта\
Для примера.

Русские имена обрабатываются корректно, но вот если мы имеем имя с пробелом типо "с:\program files\mail" например, то уже ошибка или если значение реестра имеет такой вид %appdata%\thebat!\.
Видими при моем варианте извлечение значения пар-ра реестра эти ограничения не обойти... или как-то можно
А может есть какой-то более простой способ получить его???
Заранее спасибо
Автор: Tierchen
Дата сообщения: 20.02.2007 11:17
Smitis
Хорошо, допустим, что сначала экпортирую реестр в txtшник.
Тут сразу проблемка - а как сразу все ключи писать? Какой разделитель?
Ну типа
reg query HKLM & HKCU & HKCR & ... %temp%\regexp.txt

И следующий вопрос:
например, в файл занесен ключ

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Components\DABE92CC2CB71D119A12000A9CE1A22A]
"9040110900063D11C8EF10054038389C"="C:\\Program Files\\Microsoft Office\\Templates\\1033\\Professional Memo.dot"

Хочу делать так, чтоб искал по ключевому слову и если ключевое слово встречается в названии параметра или в значении, то выписывался бы ВЕСЬ ключ со ВСЕМИ параметрами и их значениями.
Т.е. например при поиске по "Office" у меня из вышеприведенного будет выписано только
"9040110900063D11C8EF10054038389C"="C:\\Program Files\\Microsoft Office\\Templates\\1033\\Professional Memo.dot"
т.е. только параметр со значением, но не ключ, в котором содержится данный параметр.
А надо ВСЁ. Кто подскажет?
Автор: igor_andreev
Дата сообщения: 20.02.2007 12:30
Smarsh

Цитата:
вот если мы имеем имя с пробелом типо "с:\program files\mail"

ЗеКрыски! у меня нет, проверить не могу. Но для бэкапа Outlook Express у меня батник есть. Сделай по аналогии, подставь свои ключи реестра.
REG QUERY "HKEY_CURRENT_USER\Identities\{13C5344F-6ED2-437C-B680-300FCA98F913}\Software\Microsoft\Outlook Express\5.0" /v "Store Root" у меня выдает аналогичное твоему:

Цитата:

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\Identities\{13C5344F-6ED2-437C-B680-300FCA98F913}\Software\Microsoft\Outlook Express\5.0
Store Root    REG_SZ    D:\MD\oe

посему:

Код:
REM %USER_ID% узнал уже в батнике раньше, это кучка цифр
REM В "TOKENS=4*" попадает все , что написано после Store Root REG_SZ
REM у тебя это будет все, что после working directory REG_SZ
REM 4-й токен будет иметь значение %%a, все остальное * - %%b
REM Если пробел в пути к банку сообщений есть - параметр %%b
REM пустым НЕ БУДЕТ, поэтому делаем проверку IF "%%b/"=="/"

FOR /F "TOKENS=4*" %%a IN ('REG QUERY "HKCU\Identities\%USER_ID%\Software\Microsoft\Outlook Express\5.0" /v "Store Root"') DO (
IF "%%b/"=="/" (SET FOLDER_WITH_DBX=%%a) ELSE (SET FOLDER_WITH_DBX=%%a %%b)
)
Автор: Smarsh
Дата сообщения: 20.02.2007 12:58
igor_andreev
10 баллов =) все катит =) спасибо, сам бы никогда не додумался =) (нет ну может и додумался, если бы нормально понимал что происходит с командами for и tolkens, а то нормального описания ни где не видел =) Может есть где?? Подскажите??).

Ща перекрою все в один батничек и будет все пучком...

Огромное спасибо =)
Автор: igor_andreev
Дата сообщения: 20.02.2007 13:20
Smarsh
Пробел не забудь удалить в конце строки после %%A, забыл про дурацкое копирование с этого форума..

Цитата:
FOR /F "TOKENS=*" %%A IN ('ECHO.%FOLDER_WITH_DBX%') DO SET FOLDER_WITH_DBX=%%A

Автор: Nagual
Дата сообщения: 20.02.2007 13:56
Smitis
Цитата:
ё....
А зачем так много пингов? Одного разве не хватило бы? Увеличить задержку и всё.
а ты попробуй сделать то, что я выписывал кучей пингов, то есть похожее рукописное письмо, всего одним пингом, буду ждать с нетерпением...

igor_andreev
хотя мне не нужен пока что ни бат, ни тем более аутглюк, тем не менее в примере очень великолепно видна одновременная работа двух важнейших операторов for и if, да еще и с реестром, за что отд. спс
Автор: Smarsh
Дата сообщения: 20.02.2007 14:44
igor_andreev
Спасибо =), но я сам врубился... правда час щас на это потратил =) Пришел сказать что у тя ошибка =) У меня из-за этого рар просто весь диск сканил в тупую =) Но теперь все ок! В результате полная верся бат файла выглядит так:

Цитата:

chcp 1251
echo -------------------------------------------------------------------------------- >>log.txt
date /t >>log.txt
time /t >>log.txt
FOR /F "TOKENS=4*" %%a IN ('reg query "HKCU\Software\RIT\The Bat!" /v "working directory"') DO (
IF "%%b/"=="/" (SET asd=%%a) ELSE (SET asd=%%a %%b)
) >>log.txt
FOR /F "TOKENS=*" %%A IN ('ECHO.%asd%') DO SET asd=%%A>>log.txt
echo ’ҐЄгйЁ© Ї®зв®ўл© Є в «®Ј >>log.txt
set asd >>log.txt
mkdir c:\_FILEBACKUP >>log.txt
"c:\program files\winrar\rar.exe" a -r c:\_FILEBACKUP\backup_%username%.rar "%asd%*.tbb">>log.txt
echo -------------------------------------------------------------------------------- >>log.txt

Ну если никого не смущает, что он весит ровно 666 байт =)

Автор: Patron73
Дата сообщения: 20.02.2007 16:09
rothman
почему когда я пишу в скрепте open x.x.x.x - IP который открываю
он пишет что

Цитата:
"open" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

Автор: KapralBel
Дата сообщения: 20.02.2007 16:14
Patron73
Покажи скрипт и как ты его используешь?
Автор: JohnRD
Дата сообщения: 20.02.2007 17:25
Elroir подскажите пожалуйста что я пропустил или не дописал.
после того как, не выполнено: %%a==%username% set key=%%b должно по идее ни чего не происходить далее, но у меня продолжает выполнятся все что ниже
if not defined key goto :EOF


Код: @echo off
set key=
for /f "usebackq tokens=1,2 delims=;" %%a in (login-container.csv) do if /i %%a==%username% set key=%%b
if not defined key goto :EOF
type C:\LanDocs\Client\LANDOCS.INI|gsar -s"iKeyLogOn=-" -r"iKeyLogOn=+" -F|gsar -s"wbprefix=vcert" -r"wbprefix=native" -F|gsar -s"iKey=+" -r -F|gsar -s"iKey=-" -r -F|gsar -s"wbcontainer=iKey" -r"wbcontainer=%key%" -F >LANDOCS2.INI
copy LANDOCS2.INI C:\LanDocs\Client\LANDOCS.INI /y
del LANDOCS2.INI

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667

Предыдущая тема: Сбой активации XP sp2


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