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

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

Автор: KapralBel
Дата сообщения: 13.07.2007 13:27
wolf0425
Так эти переменные и начинаются на User

Только что проверил (под локАдмином)
нет домена
Автор: wolf0425
Дата сообщения: 13.07.2007 13:57
KapralBel, GreaseOD хочет не тот домен где юзер авторизуется, а тот домен где авторизуется компьютер при подключении к сети:

Цитата:
А мне нужно чтобы я логинелся под локальным админом и написал в cmd (echo %?????%), что-то чтобы вывело мне имя домена в которую входит компьютер, т.е "ККК"
у меня вон доступных для логина юзерами доменов 10штук, а компьютер входит только в один из них - прописанный в Система-Свойства-ИмяКомпьютера-Член домена
Автор: KapralBel
Дата сообщения: 13.07.2007 13:59
wolf0425
Дык я писал, надо с реестра вытягивать данные
Автор: wolf0425
Дата сообщения: 13.07.2007 14:01
KapralBel а где они в реестре прописаны - не скажешь? вытянуть то не проблема.
Автор: KapralBel
Дата сообщения: 13.07.2007 14:31
wolf0425
Поэтому и сам код не написал
Во - нашел
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DomainCache]
Автор: wolf0425
Дата сообщения: 13.07.2007 14:36
KapralBel не оно. в этой ветке у меня - четыре записи.
но направление мысли оценил.
видимо HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\CachePrimaryDomain
Автор: newhome
Дата сообщения: 13.07.2007 14:57
KapralBel
Спб.
а как быть со вторым вопросом?
(кроме как с помощью http://forum.ru-board.com/topic.cgi?forum=2&topic=2922&start=16&limit=1)
Автор: KapralBel
Дата сообщения: 13.07.2007 15:03
wolf0425
Скорее всего
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultDomainName

в общем так

Код: @Echo Off
regedit /ea dom.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"
Set dName=""
For /F "tokens=1-2 delims==" %%a In (dom.Reg) Do Call :_P %%a %%b
Echo %DName%
GoTo :EOF

:_P
If /i %1 == "DefaultDomainName" Set DName=%2
GoTo :EOF
Автор: newhome
Дата сообщения: 13.07.2007 16:20
KapralBel
Подкажите, пжста, как внести изменения в файл с пом батника. (Например, заменить в 3 строчке 4 слово "word.001" на "word.002") не с помощью sbs2.com
Автор: GreaseOD
Дата сообщения: 13.07.2007 16:20

Цитата:
Код:@Echo Off
regedit /ea dom.reg "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\"
Set dName=""
For /F "tokens=1-2 delims==" %%a In (dom.Reg) Do Call :_P %%a %%b
Echo %DName%
GoTo :EOF

:_P
If /i %1 == "DefaultDomainName" Set DName=%2
GoTo :EOF


Спасибо огромное. Это работает. Супер


Автор: Elroir
Дата сообщения: 13.07.2007 23:16
NIKZZZZ

Цитата:
Есть небольшая задачка. Есть такой сервис - Rapidshare.com. После загрузки файла он временно блокирует Ваш IP. Как батником проверить, есть ли Ваш IP в этом списке?

Это достаточно сложно. Выяснить это можно только попробовав скачать следующий файл - если нарвался на "Ждите Х минут", значит IP надо менять. Сходу у меня не получилось - я curl-ом пробовал нажать "Free" на страничке закачки, если бы получилось - можно было бы с помощью find искать строчку "You have reached the download-limit" и по результату решать, что делать. У меня не получилось подобрать URL который бы имитировал нажатие кнопки "Free". Надо проконсультироваться у кого-нибудь, кто знает HTML.
Автор: mitrichbel
Дата сообщения: 14.07.2007 00:10
Здравствуйте! У меня вот какая задача нарисовалась
Есть много текстовых файлов. Надо в каждом из них:
1. Удалить пустые строки
2. Удалить все строки, в которых есть конкретное (одно и то же для всех файлов) слово

И было бы очень здорово, если бы потом даты изменения файлов остались прежними, а не сменились на сейчас.

Такое возможно вообще? Или нужен отдельный софт?
Автор: Nagual
Дата сообщения: 14.07.2007 01:30
Elroir

Код: var clickFreeButton = function()
{
var input = document.getElementsByTagName('input')
for(var i in input)
{
if(input[i].type == 'submit' && input[i].value.toLowerCase() == 'free')
{
input[i].click();
return true;
}
}

return false;
};
Автор: Elroir
Дата сообщения: 14.07.2007 02:07
Nagual
Я имел в виду нечто другое - информацию (в том числе и "нажатие" кнопки) можно передавать прямо через URL. Например - у меня раутер управляется через веб-интерфейс и на одной из страниц есть кнопки Connect и Disconnect. Из батника я запускаю строчки:
curl http://192.168.1.1/status.cgi?disconnect="Disconnect"
curl http://192.168.1.1/status.cgi?connect="Connect"
и это имитирует нажатие этих кнопок.
То же самое надо сделать для кнопки "Free" на страничке rapidshare.
Автор: ViSiToR
Дата сообщения: 14.07.2007 02:41
Elroir
Видимо на Rapidshare не поддерживается посылание запроса ссылкой, там определяется нажатие кнопки (по событию).

Приведённый код Nagual это javascript (кстати, очень похож на кусок кода с файла rapidshare_com.js для Opera ), не знаю может ли curl вызывать подобный код (предварительно перейти на страницу rapidshare.com).
Автор: Elroir
Дата сообщения: 14.07.2007 02:47
ViSiToR

Цитата:
Видимо на Rapidshare не поддерживается посылание запроса ссылкой

Видимо да - наверно используется метод post (данные передаются в теле запроса).
Правда в некоторых системах можно пользоваться обоими методами (post и get).

Цитата:
может ли curl вызывать подобный код

Насколько я знаю - не может.
Автор: Tipulatoid
Дата сообщения: 14.07.2007 05:39
j0yb1tyr
вот решение:

Код: @echo off

for /f "tokens=*" %%a in ('dir *.ext1 /b /a:-d /o:d') do set newfile1=%%a
copy %newfile1% %cd%\out > nul
for /f "tokens=*" %%a in ('dir *.ext2 /b /a:-d /o:d') do set newfile2=%%a
copy %newfile2% %cd%\out > nul

set ftp_adress=ftp.narod.ru
set ftp_login=qwerty
set ftp_password=qazwsx

echo %ftp_login%>upload.del
echo %ftp_password%>>upload.del
echo cd>>upload.del
echo dir1>>upload.del
echo put %newfile1%>>upload.del
echo cd>>upload.del
echo dir2>>upload.del
echo put %newfile2%>>upload.del
echo quit>>upload.del

ftp -i -v -s:upload.del %ftp_adress%
del /q upload.del>nul
Автор: Maza Faka
Дата сообщения: 14.07.2007 08:59
mitrichbel
Скачай утилиту "NIRCMD", скопируй в папку WINDOWS и запусти этот код:

Код:
@echo off
REM chcp 1251>nul
set folder=c:\test

for /f "tokens=1,2,4*" %%a in ('dir /t:w "%folder%\*.txt" ^| find /i "txt"') do (
if "%%d"=="" (
call:mod %%a %%b %%c) else (call:mod %%a %%b "%%c %%d")
)

pause
goto :eof

:mod
set m_time=%~1 %~2:00
set m_time=%m_time:.=-%
if exist %folder%\tmp.txt del /f /q tmp.txt

for /f "delims=" %%f in (
'more "%folder%\%~3"') do echo %%f | findstr /i /v /c:"ненужный текст">> %folder%\tmp.txt

del /f /q "%folder%\%~3"
ren %folder%\tmp.txt %3
nircmd setfiletime "%folder%\%~3" "" "%m_time%"
Автор: NIKZZZZ
Дата сообщения: 14.07.2007 12:30
Набор разных утилит.
Автор: Elroir
Дата сообщения: 14.07.2007 16:03
Nagual
Я поторопился с утверждением, что curl не умеет делать такие запросы.
Вот код:

Код: @echo off
setlocal enabledelayedexpansion
for /f "tokens=3 delims== " %%a in ('curl -s %~1 ^| find "form action"') do (
curl -s -d "dl.start=Free" %%~a | find "Download via">nul
if not !errorlevel!==0 set "blacklist=yes"
)
if defined blacklist (echo IP is blacklisted) else (echo Everything is OK)
Автор: NIKZZZZ
Дата сообщения: 14.07.2007 19:16
Elroir
Большое спасибо. Не знал, что curl такое сможет. Сделал рапидокачалку - полный автомат.
Автор: Nagual
Дата сообщения: 15.07.2007 06:32
Elroir
звучит воодушевляюще
NIKZZZZ
выкладай
Автор: Lutvun
Дата сообщения: 15.07.2007 11:45
Как узнать имя компютера и пользователя через бат файл?
Автор: Elroir
Дата сообщения: 15.07.2007 12:32
Lutvun

Код:
echo %COMPUTERNAME%
echo %USERNAME%
Автор: NIKZZZZ
Дата сообщения: 15.07.2007 12:37
Nagual

Цитата:
выкладай

Да выкладывать то особо нечего, я взял немного доработанный Universal Share Downloader и добавил в него проверку IP на черный список с автоматическим переключением IP перед получением прямой ссылке. Если интересно, пиши в ПС, а то это .
В принципе, можно написать батник, который бы это делал, но имеет ли это смысл?
Автор: Lutvun
Дата сообщения: 15.07.2007 13:07
Elroir
Спасибо!!!
Автор: mitrichbel
Дата сообщения: 15.07.2007 19:28
Maza Faka

Цитата:
Скачай утилиту "NIRCMD", скопируй в папку WINDOWS и запусти этот код:

получаю "Файл не найден". Закомментил первую строчку и увидел в консоли

Цитата:
C:\test>REM @echo off

C:\test>REM chcp 1251>nul

C:\test>set folder=c:\test

C:\test>for /f "tokens=1,2,4*" %%a in ('dir /t:w "%folder%\*.txt" ^| find /i "txt"') do (if "%%d"=="" (call:mod %%a %%b %%c) else (call:mod %%a %%b "%%c %%d" ) )

C:\test>pause
Для продолжения нажмите любую клавишу

Что поправить?
Автор: Nagual
Дата сообщения: 16.07.2007 00:09
NIKZZZZ
ок тогда смысла нет

Народ, вот такая задача возникла
надо обновить qip батником, так как надоело это делать руками
в принципе опытным путем было установлено, что в основном меняется файл qip.exe
начал писать так:

@echo off
set qip_build=8030
set qip_host=http://download.qip.ru/
taskkill /f /im qip.exe

вот точные ссылки на текущий билд
http://download.qip.ru/qip8030.zip
http://download.qip.ru/qip8030.rar

то есть примерно так
"команда загрузки с заменой только файла qip.exe" %qip_host%qip%qip_build%.zip
"команда загрузки с заменой только файла qip.exe" %qip_host%qip%qip_build%.rar

дальше хотелось бы вашей помощи там, где выделено жирным:
есть wget и curl
можно ли одним из них выковырять из архива (zip или rar) на сайте только файл qip.exe
и заменить им одноименный, лежащий в текущем каталоге?
если нет, то загрузить полностью архив и распаковать его заменой я смогу и сам

вот код для обновления этого файла с полной загрузкой всего архива

@echo off
set qip_build=8030
set qip_host=http://download.qip.ru/
wget %qip_host%qip%qip_build%.rar
taskkill /f /im qip.exe
rar x -y -nqip.exe "qip%qip_build%.rar"
::rar x -y "qip%qip_build%.rar" LI . rem так обновляем папку с языками
::rar x -y "qip%qip_build%.rar" LI\langs.cfg . rem так обновляем файл внутри папки
if exist "qip%qip_build%.rar" del /f/q "qip%qip_build%.rar"
start "" qip

а хотелось бы грузить только файл qip.exe
хотя трафик у меня безлимитный, но все же оптимизация нужна в любом случае

а в идеале бы еще проверять версию обновления на сайте
Автор: ViSiToR
Дата сообщения: 16.07.2007 00:44
Nagual

Цитата:
можно ли одним из них выковырять из архива

Не думаю, нужен внешний архиватор... если есть 7z, то отлично подходит, если нет, тогда можно и rar.exe...


Код: Set Archivator=%ProgramFiles%\7-Zip\7z.exe

%Archivator% e -o. qip.exe -r
Автор: Nagual
Дата сообщения: 16.07.2007 02:44
Вот код для архиватора 7z
Внимание: для поддержки распаковки rar архивов рядом с файлом 7za или 7z должен лежать файл 7z.dll

@echo off
set qip_build=8030
set qip_host=http://download.qip.ru/
wget %qip_host%qip%qip_build%.rar
taskkill /f /im qip.exe
7z x -y "qip%qip_build%.rar" qip.exe
::7z x -y "qip%qip_build%.rar" LI rem так обновляем папку с языками
::7z x -y "qip%qip_build%.rar" LI/langs.cfg rem так обновляем файл внутри папки
if exist "qip%qip_build%.rar" del /f/q "qip%qip_build%.rar"
start "" qip

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Автозагрузка терминальной сессии


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