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

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

Автор: mugil_cephalus
Дата сообщения: 07.04.2010 22:05
us0r
cd\
setlocal enabledelayedexpansion
chcp 1251>nul
for /f "skip=1 tokens=1-2* delims= " %%a in ('netsh interface ip show address') do (
set "var=%%~c"
set "var=!var:"=!"
goto:exit
)
:exit
echo.%var%
pause

а... у тебя много lan'ov - тогда
cd\
setlocal enabledelayedexpansion
chcp 1251>nul
for /f "tokens=1-2* delims= " %%a in ('netsh interface ip show address ^|find /i "настройка"') do (
set "var=%%~c"
set "var=!var:"=!"
goto:exit
)
:exit
echo.%var%
pause
Автор: gryu
Дата сообщения: 07.04.2010 22:14
Maikl_relax

Цитата:
штаный Клиент ВентаФаксовский поставить Серетарю никак

Есть такая фигня. Называется "лицензия".
У нас в наличии модем Zyxel и как следствие 5-я Хоум версия ВентаФАХ.
Только не говорите что у "соседей в ветке" можно взять ломаную. Не тот случай.
king_stiven
Спасибо. Буду посмотреть завтра.
Автор: bredonosec
Дата сообщения: 08.04.2010 10:53
вопрос: а как можно выцепить в переменную имя акка, под которым на машине сейчас сидит человек?
Общая задача - положить именно в этот акк в закладки одну линку (в all users не катит - не видна там). На каждой машине из списка.
условия - домен, есть АД серв, доступ к нему ограниченный.
Как переменную использовать - думаю, не возникнет трудностей, но как получить - не представляю.

на самый крайний случай можно вручную набрать список имен и компов, и по нему пускать идти перебором, но не хочется этого делать.
Автор: us0r
Дата сообщения: 08.04.2010 11:39
Благодарю, но...

Цитата:
METAJIJI

Почему tokens=3? Разделителемь является пробел?

mugil_cephalus

Цитата:
а... у тебя много lan'ov - тогда
cd\
setlocal enabledelayedexpansion
chcp 1251>nul
for /f "tokens=1-2* delims= " %%a in ('netsh interface ip show address ^|find /i "настройка"') do (
set "var=%%~c"
set "var=!var:"=!"
goto:exit
)
:exit
echo.%var%
pause


Выводит имя только последнего интерфейса
Автор: mugil_cephalus
Дата сообщения: 08.04.2010 12:08
us0r
cd\
setlocal enabledelayedexpansion
chcp 1251>nul
set "cnt=1"
for /f "tokens=1-2* delims= " %%a in ('netsh interface ip show address ^|find /i "настройка"') do (
set "vartmp=%%~c"
set "var!cnt!=!vartmp:"=!"
set /a cnt=!cnt!+1
)
set var
pause
Автор: wolf0425
Дата сообщения: 08.04.2010 12:43
bredonosec
Цитата:
вопрос: а как можно выцепить в переменную имя акка, под которым на машине сейчас сидит человек?
если запускать на машине от юзера - то %USERNAME%
если просто с компа сетевого админа - то посканировать на юзеровом компе "C:\Documents and Settings\*\NTUSER.DAT" и найти самый свежий - с 99% вероятности это будет у юзера в каталоге, особенно если служебные аккаунты отфильтровывать.
могу порыться - где-то готовый код был. или сам по мессагам поищи - его тут уже дважды постил.

Цитата:
Общая задача - положить именно в этот акк в закладки одну линку
а положить всем юзерам компа - чем-то плохо?
Или класть юзеру при логине.
Автор: vov4ka
Дата сообщения: 08.04.2010 12:55
Здравствуйте,решил опять запостить новую проблему в эту замечательную тему, т.к. знаю-здесь люди в беде не бросят!!! Нужна пара батников,чтобы их по компам раскидать:

1.Чтоб запретил компу быть мастер браузерами,запретил ему участвовать в выборах и отключил службу "обозреватель компьютеров".

2. Наоборот-дал компу роль Единственного мастер браузера и вкл. службу "обозреватель компьютеров".

Заранее благодарен!!!!
Автор: Lutvun
Дата сообщения: 08.04.2010 13:19
Нужно из батника открыть телнет сессию и не закрывая её в цыкле скидывать туда команды с переменными.
Например: Запустил батник выполнил команду: отправить в телнет %время%. Через секунду опять команда: отправить в телнет %время%. И так постоянно!
Автор: mugil_cephalus
Дата сообщения: 08.04.2010 13:22
Lutvun
http://forum.ru-board.com/topic.cgi?forum=5&topic=33080&start=20#19
Автор: bredonosec
Дата сообщения: 08.04.2010 13:34

Цитата:
с компа сетевого админа

да, именно так.
Цитата:
могу порыться - где-то готовый код был. или сам по мессагам поищи - его тут уже дважды постил.

лучше таки посмотри, я даж не знаю по каким ключевым словам фильтровать поиск(

Цитата:
положить всем юзерам компа - чем-то плохо?

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

Цитата:
Или класть юзеру при логине.

о! а как? (на потом точно еще пригодится метод)
Автор: mugil_cephalus
Дата сообщения: 08.04.2010 14:05
bredonosec
начало - http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1200#5
конец - http://forum.ru-board.com/topic.cgi?forum=62&topic=17154&start=1220#4
Автор: wolf0425
Дата сообщения: 08.04.2010 19:01

Цитата:
я даж не знаю по каким ключевым словам фильтровать поиск(
как так не знаешь - NTUSER.DAT

локальный поиск последнего логинившегося на компе юзера, из не прописанноых в список исключений:

Код: set olduser=
cd /d "C:\Documents and Settings\" && for /d %%i in (*) do (
    pushd "%%~i"
    for /f %%j in ('dir /b /ah ntuser.dat 2^>nul') do for /f "tokens=1-5 delims=.: " %%1 in ("%%~tj") do set "ntuser-%%3%%2%%1%%4%%5=%%~i"
    popd
)
for /f "tokens=3 delims=-=" %%a in ('set ntuser ^| sort /r') do find /i "#%%~a" %~s0 >nul || set "olduser=%%~a" && goto:selected
Автор: bredonosec
Дата сообщения: 09.04.2010 14:18

Цитата:
а групповые политики тебе зачем даны в AD?

менять их не имею доступа. Ограниченный админ.

попробовал с pcloggedon (просто локально, бат в одну строку- провериться на кошках, то есть, на себе)

psloggedon.exe -l \\%1 | find /I "mojDomen.lt\" >> "c:\path_to_folder\lists.txt"

- она у меня авторское соглашение выстреливает.
При повторных - просто пустой лог файл оставляет.


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

тут не совсем улавливаю пару вещей: можно ли такой метод юзать, когда доступ только по паролю ко всем компам, (я пока пользовал метод с указанием логина, пароля, нет юз как диск такой-то, потом отключить и подключить следующий им же. )
И если можно, то какая граница использования %i - ведь туда текущее имя компа подставляться будет, а тут иное описано этой переменной.
И что означает переменная j
Автор: wolf0425
Дата сообщения: 09.04.2010 15:26

Цитата:
менять их не имею доступа. Ограниченный админ.
своих добавить на свою часть компов - тоже не можешь? печально тогда.
можно приткнуть батник в "C:\Documents and Settings\All Users\Start Menu\Programs\Startup\" - горбатенько только это...


Цитата:
попробовал с pcloggedon
afair это тулза несколько для другого - посмотреть кто к зашаренным ресурсам законнекчен.

в любом случае - что пишет psloggedon -l \\totkomp если его просто в консоли запускаешь? ты %1 не забываешь давать?


Цитата:
можно ли такой метод юзать, когда доступ только по паролю ко всем компам,
э... какой по паролю, если у тебя компы в АД? тебе твоего текущего логина хватает на тех компах залогиниться (с доступом как админу)?
пропиши у эксплорера в строку \\totkomp\с$ - пустит или спросит что?
Если не хватает и знаешь только пароль юзера администратор (локальный) от всех компов - проще и у себя батник запускать от администратора (runas /?), чтобы с паролями винды сами через АД разбирались.
Но в общем-то несложно и на монтирование/размонтирование переписать, в данном варианте - переписывать пожалуй меньше будет, тут на cd/pushd завязано.
Это только обычно - незачем с ним заморачиваться в АД, прямые сетевые имена - удобнее.


Цитата:
какая граница использования %i
%%i это переменная цикла в верхней строке, определена пока он выполняется. имя каталога пользователя.

Цитата:
И что означает переменная j
тут %%j это переменная цикла второй вложенности - for /f %%j in ('dir...
всегда равна ntuser.dat, а вот её путь и время - меняются.
ты вообще for /? читал, или тебе и про переменные %%1 .. %%5 тоже нужны пояснения в контексте данного кода?


Автор: bredonosec
Дата сообщения: 09.04.2010 15:37
пока сделал "[more=по пути наименьшего сопротивления]
@echo ON

set DomainUserUPN=domain\myaccount
set /P DomainUserPassword=password...
set FLOG=%~n0.log
set FLIST=SK-AD.txt
if exist %FLOG% set FLIST=%FLOG%
for /f "tokens=*" %%i in (%FLIST%) do call :COPY_URL1 %%i
goto RETURN

:COPY_URL1
set PK=%1\c$
net use \\%1 /d
net use \\%PK% /d
net use m: \\%PK% %DomainUserPassword% /user:%DomainUserUPN% || goto NO_CONN

set "u_path=\\m:\documents and settings"
for /f "delims=" %%a in ('dir /b /ad-s-h "%u_path%\*"') do copy /b "c:\path_to_url\sobsno_url.url" "%u_path%\%%a\Favorites\*.*" /y

net use m: /delete
goto RETURN

:NO_CONN
echo %1 >>%FLOG%

:return
[/more]"- тестирую....


Добавлено:

Цитата:
Если не хватает и знаешь только пароль юзера администратор

нет, я не под админом сижу - я под юзером сижу, а правами админа только запускаю всякие приблуды..

Цитата:
своих добавить на свою часть компов - тоже не можешь?

именно. Уже пробовал летом.. закрыто.

Цитата:
%%i это переменная цикла в верхней строке, определена пока он выполняется.

то есть, если верхний цикл будет перебор компов, то тут надо вторую (j), а вместо второй - третью?

(остальное потом, день кончился, домой))
Автор: wolf0425
Дата сообщения: 09.04.2010 15:50

Цитата:
то есть, если верхний цикл будет перебор компов, то
то у всех циклов в пределах вложенности переменные должны быть разные. у просто соседних - могут пересекаться. Какие буковки использовать - назначаешь сам.
допустимые символы для переменных a-zA-Z0-9. регистр учитывается

в моем коде задействованы %%i j 1-5 в верхнем куске и %%a в нижнем. исторически получилось.
Автор: wolf0425
Дата сообщения: 10.04.2010 09:46

Цитата:
Насколько я понимаю, ERRORLEVEL здесь напрямую не сработает, т.к. запущенный скрипт отработал нормально, а пришедшая ошибка это не ошибка запуска скрипта?
ошибка запуска скрипта тут ни при чем, если нужно чтоб запущенный скрипт возвращал ненулевой ERRORLEVEL - возвращаемый код нужно в скрипте прописывать. Может быть прописано, может нет - проверь.
если не прописано - можно тупо перенаправить вывод скрипта на вход поиска.
Автор: mugil_cephalus
Дата сообщения: 10.04.2010 11:26
wolf0425

Цитата:
a-zA-Z0-9

то есть %%27 - нельзя? а где ты узнал про не литеральные, а цифровые var в цикле. в help'e - только латинский abc...
Автор: duh_S
Дата сообщения: 10.04.2010 11:35
подскажите плз что не правильно,
вот в таком виде не работает:


Код:
set ThisCmdDir=%~dp0
start /wait "%ThisCmdDir%FoxitReader321_enu.msi" /quiet /qn
DEL "%USERPROFILE%\Desktop\Foxit Reader.lnk"
DEL /F /S /Q "%ThisCmdDir%*.*"
Автор: mugil_cephalus
Дата сообщения: 10.04.2010 12:10
duh_S
start /wait "" "%ThisCmdDir%FoxitReader321_enu.msi" /quiet /qn
Автор: wolf0425
Дата сообщения: 10.04.2010 12:18

Цитата:
то есть %%27 - нельзя?
без понятия. тебе интересно - ты и проверяй

Цитата:
а где ты узнал про не литеральные, а цифровые var в цикле.
не поверишь, но на этом форуме у кого-то увидел проверил - работает...
что большие/маленькие буквы там различаются - тоже сначала тут заметил.

ivn1978
Цитата:
Скорее всего нет, так как с разными уровнями ERRORLELEL пробовал уже.
не понял, чего пробовал? echo %ERRORLELEL% после вызова скрипта влепи, посмотри - зависит печатаемое число от результата скрипта или нет.


Цитата:

Цитата: если не прописано - можно тупо перенаправить вывод скрипта на вход поиска.
Можно поподробней, как именно это сделать?
Автор: BARABASHKA777
Дата сообщения: 10.04.2010 12:19
Зайди на сайт freeloadlife.ucoz.ru
там есть раздел "Оплаченная Реклама" кликни на любую ссылку и тогда в правом верхнём углу будет сайт на котором
ты сможеш пополнить счёт на моб. телефоне
Автор: wolf0425
Дата сообщения: 10.04.2010 12:22
duh_S

Цитата:
о нужно чтоб работало именно через объявление переменной - путь запуска из текущей директории
кстати, а зачем переменную вводишь, если используешь в немодифицированном виде?

Код: start "Foxit" /wait "%~dp0FoxitReader321_enu.msi" /quiet /qn
...
DEL /F /S /Q "%~dp0*" & exit
Автор: mugil_cephalus
Дата сообщения: 10.04.2010 12:26
wolf0425

Цитата:
без понятия. тебе интересно - ты и проверяй

уже проверял то, - не пашет, но подумал, что так как в парадигме научного миропознания сущетсвует максима примата дедуктивной методы над индуктивной, может ты где вычитал в book'e...

Цитата:
не поверишь, но на этом форуме у кого-то увидел проверил - работает...
что большие/маленькие буквы там различаются - тоже сначала тут заметил.

взаправду, неверится...
Автор: duh_S
Дата сообщения: 10.04.2010 12:57
mugil_cephalus
wolf0425

пасиб
Автор: mugil_cephalus
Дата сообщения: 10.04.2010 13:23
ivn1978

Цитата:
какое значение здесь имеет символ "1"

введи в консоли hh ntcmds.chm::/redirection.htm
Автор: wolf0425
Дата сообщения: 10.04.2010 13:51

Цитата:
Можно только пояснить, какое значение здесь имеет символ "1" Уровень?
1>nul это перенаправление в нуль стандартного потока вывода. добавлено чтобы поиск ничего не печатал в консоль. Можно и убрать, если хочешь профильтрованный результат печати скрипта видеть в консоли.
Автор: rovergor
Дата сообщения: 10.04.2010 22:36
Подскажите батник чтобы он проверял размер файла (равно 0 или больше), если равно 0 запуск exe файла, если нет копирует файл с 0 размером в нужное место и потом запуск exe файла.
Автор: gryu
Дата сообщения: 10.04.2010 23:06
king_stiven
Чёрт. Задёрганый я какой то стал.
Сейчас глянул в топе, оказаться что тут потёр и благодарность.
Спасибо. Работает. Пока, временно "курю бамбук", так так вынужден оставить пока этот вопрос и переключится на более срочный.
Спасибо.
Автор: JekaKot
Дата сообщения: 10.04.2010 23:17
Есть батник (спасибо Bladru, помог)

Код:
@echo off
reg query "HKLM\System\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE |find "AMD64" >NUL
IF errorlevel 0 (
start "" /D"%~dp0AutoCAD2010-x64\AdminImage\" "%~dp0AutoCAD2010-x64\AdminImage\setup.exe" /qb /I "%~dp0AutoCAD2010-x64\AdminImage\AutoCAD2010-x64.ini" /language ru-ru
) ELSE (
start "" /D"%~dp0AutoCAD2010-x86\AdminImage\" "%~dp0AutoCAD2010-x86\AdminImage\setup.exe" /qb /I "%~dp0AutoCAD2010-x86\AdminImage\AutoCAD2010-x86.ini" /language ru-ru
)

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132

Предыдущая тема: XP не видит второй раздел на съемном USB-HDD


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