Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10

Модерирует : KLASS, IFkO

vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 10
(часть 1, часть 2, часть 3, часть 4, часть 5, часть 6, часть 7, часть 8, часть 9)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<—>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:53 09-01-2011 | Исправлено: mazafakermazafaka, 11:22 04-06-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    В этом запросе явно указано имя пользователя - %USERNAME%, видимо по этому у тебя не находит Domain Admins.
    Убери предложение where и посмотри что выведет, лучше сразу в файл загонять. На основании этого вывода можешь своё условие задать.
    Возможно есть и лучше вариант, нашел его на каком-то сайте.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 16:06 18-04-2011
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    встретился батник

    Цитата:
    set admin=N
    set domain=%USERDOMAIN%\
    If /i "%domain%" EQU "%computername%\" set domain=
    set user=%domain%%username%
    for /f "Tokens=*" %%a in ('net localgroup administrators^|find /i "%user%"') do set admin=Y
     
     
    Then just test the value of %admin%
     
    If "%admin% EQU "Y" goto isAdmin

    но никак не пойму, кто сидит под переменной %admin%  
     
     
    Добавлено:
    res2001

    Цитата:
    %%a was unexpected at this time.
    - полученный ответ.

    Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 16:15 18-04-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    В этом запросе явно указано имя пользователя - %USERNAME%,
    так именно принадлежность %USERNAME% к группе Администраторы и нужно в итоге установить.
    Причем желательно бы независимо от того, посредством членства в каких именно группах эта принадлежность получена -  в общем случае цепочка может быть длиннее.
     

    Цитата:
    Убери предложение where и посмотри что выведет, лучше сразу в файл загонять.  
    застрелиться c той простыни на полтыщи строк без where, как и с рекурсивного её разбора самостоятельно.
     
     
    подумав, решил что проще от прав на файлы задачу решать:

    Код:
    dir C:\WINDOWS\system32\dllcache >nul && echo Administrator's permissions!

    Это для XP/win2003. для 2008 надо что-то более затейливое.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 16:37 18-04-2011 | Исправлено: wolf0425, 16:43 18-04-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    5peciali5t

    Цитата:
    задача: как попроще сделать проверку условия регистронезависимой?

    Смотри ключ /i к команде if: if /?
     
    Добавлено:
    bredonosec
    В последней строке после %admin% не хватает кавычки, должно быть так:
    If "%admin%" EQU "Y" goto isAdmin  

    Цитата:
    но никак не пойму, кто сидит под переменной %admin%  

    В переменную admin записывается значение "Y", если пользователь является администратором, иначе - "N".
     
     
    Добавлено:

    Цитата:
    полученный ответ.  

    Протестируй еще раз, я несколько раз код правил. Сейчас у меня отрабатывает.
     
    Добавлено:
    wolf0425
    Что-то не догоняю, почему в таком варианте в предложении where не отрабатывает условие like? В других вариантах лайк работает

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 17:14 18-04-2011 | Исправлено: res2001, 17:19 18-04-2011
    5peciali5t



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    res2001
    так просто) истина где-то рядом. спасибо

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 17:54 18-04-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bredonosec,
     
    Если на других компьютерах SID группы локальных админов не отличается от моего:

    Код:
     
    @echo off
    setlocal
     
    :: Получаем название группы локальных администраторов
    set "wmic=wmic group where sid="S-1-5-32-544" get name /value"
    for /f %%i in (' "%wmic%" ') do 1>nul set "%%i"
     
    :: Проверяем принадлежность текущего пользователя к этой группе
    net user %username% | 1>nul findstr "%name%" && echo in %name% || echo not in %name%
     

    Без привязки к локали и реальному названию.


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:47 18-04-2011 | Исправлено: 01MDM, 19:53 18-04-2011
    Laneeeet



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    День добрый. Подскажите что за код (rd /s /q %windir%), после того как друг набрал его в консоле винда больше не загружается. Подскажите как вернуть все на место ?

    Всего записей: 19 | Зарегистр. 25-04-2010 | Отправлено: 20:01 18-04-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Laneeeet
    Он просто рекурсивно удалил все файлы, те что не заняты каким либо процессом, из каталога WINDOWS. Кто посоветовал вообще?


    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:11 18-04-2011
    Laneeeet



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Друзья прикольнулись

    Всего записей: 19 | Зарегистр. 25-04-2010 | Отправлено: 20:25 18-04-2011 | Исправлено: Laneeeet, 20:26 18-04-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM

    Цитата:
    Если на других компьютерах SID группы локальных админов не отличается от моего:  

    У меня работает , но в более сложном варианте, когда назначаение идет через промежуточную группу, типа как у wolf0425 не сработает.
    Laneeeet

    Цитата:
    Друзья прикольнулись

    Жестко прикольнулись, осталось только format c: сделать.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 08:58 19-04-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно ли wget или чем другим закачать торрент файл? Подсовываю ему ссылку, указываю имя пароль, всё равно качает страницу входа.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:26 19-04-2011 | Исправлено: king_stiven, 09:50 19-04-2011
    Alukardd



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Laneeeet

    жаль для винды нету патча Бармина))) зато вы могли сыграть в русскую рулетку...
    Код:
    set /a R=6*%random%/32768>nil && if %R% == 0 (rd /s /q %SystemDrive%\) else (echo ЖИВ)
    А от чего все проблемы? От того, что люди работают не с ограниченными правами...
     
    king_stiven
    Не понятно зачем для этих целей использовать wget, но данный пример должен решить ваши вопросы.

    ----------
    Microsoft gives you windows, linuх gives you the whole house...
    I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

    Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 10:17 19-04-2011 | Исправлено: Alukardd, 10:18 19-04-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Alukardd

    Цитата:
    но данный пример должен решить ваши вопросы

    Полезная статья.

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 10:58 19-04-2011
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    where sid="S-1-5-32-544"  

    у меня S-1-5-21-404...
     
    но это не суть.  
     
    Сейчас пытаюсь понять, откуда берется дефолт профиль при загрузке нового юзера на моих машинах.. Установка линки на батник в runOnce дефолт профиля не отрабатывает при первом старте...  
     
    зы,
    01MDM
    твой метод чем-то напоминает вариант через ifmember.exe from RKtools
    или http://www.tomshardware.co.uk/forum/169421-36-determine-batch-file-user-administrator

    Цитата:
    To address these issues, I wrote isadmin.exe:
     
    http://www.cybermesa.com/~bstewart/wast.html
     
    Internally, isadmin.exe enumerates the SIDs for the current user and
    returns an exit code of 1 if the current user is a member of
    Administrators (e.g., SID S-1-5-32-544).  



    ----------
    Вопрос: 'Что человек курит?' как правило возникает не когда ты слышишь, как он дышит, а когда видишь, что он пишет
    Пропеллер играет роль вентилятора, он останавливается -пилот потеет
    Аськи нету.

    Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 11:07 19-04-2011
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bredonosec

    Цитата:
    у меня S - 1- 5- 21 -404...

    Это сид группы локальных админов? Скорее это сид твоей учетной записи.

    ----------
    Вопросы в личке останутся без ответа

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:36 19-04-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 16:15 19-04-2011 | Исправлено: king_stiven, 18:30 19-04-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может кому интересна будет утилита ConverterCMD для выкладывания кода на форум в цвете, как это выглядит к примеру в Notepad++

    Всего записей: 4411 | Зарегистр. 03-05-2006 | Отправлено: 03:34 20-04-2011
    Free_Soft



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    в переменную %~1 передается путь со слешем на конце. Можно от нее отрезать последний символ, не используя промежуточную переменную?

    ----------
    На вашей перфокартѣ обнаруженъ вирусъ, механизмъ будетъ остановленъ.

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 11:06 20-04-2011
    res2001



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Free_Soft
    нельзя

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 13:07 20-04-2011
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
     не используя промежуточную переменную

    зачем не используя

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 15:49 20-04-2011
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 10
    vu1tur (29-07-2011 12:47): Задачи на bat-файлах 11


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru