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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 | Цитировать | Сообщить модератору
    RSEREGAR

    Цитата:
    Как в параметры cmd прописать команду?

    прочти
    cmd.exe /?

    Всего записей: 2580 | Зарегистр. 11-04-2003 | Отправлено: 17:29 01-04-2011
    RSEREGAR



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

    Всего записей: 709 | Зарегистр. 26-10-2008 | Отправлено: 17:43 01-04-2011
    Scaramanga



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А в моей просьбе может помочь кто?)

    Всего записей: 516 | Зарегистр. 24-04-2008 | Отправлено: 20:48 01-04-2011
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Scaramanga
    Проверка существования IF EXIST...
    Вообще задача простейшая - неудобно даже помогать - так что IF /? и вперед!

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 22:21 01-04-2011
    sL4yer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброе время суток!
     
    Есть переменная в которой записана строка:
    text_here:____Слово____
     
    возможен и такой вариант:
    text_here:____Слово Слово____
     
    Нужно вырезать всё, кроме Слово. Длина слова заранее неизвестна. Где "text_here" - одно слово, где "____" - символ(ы) табуляции.
     
    Конечный результат должен быть:
    Слово
    или
    Слово Слово

    Всего записей: 49 | Зарегистр. 22-10-2008 | Отправлено: 15:40 02-04-2011 | Исправлено: sL4yer, 15:42 02-04-2011
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sL4yer
    Код:
    @ECHO OFF
    SET "MYTEXT=text_here:    Слово Слово    "
    FOR /F "TOKENS=2 EOL=; DELIMS=    :" %%a IN ("%MYTEXT%") DO ECHO "%%a"
    до и после выражения "Слово Слово" стоят символы табуляции, после выражения "DELIMS=" стоит символ табуляции.

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 16:09 02-04-2011
    sL4yer



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    yurkesha
    как оказалось позже, конструкция следующая:
    текст:ПробелТабуляцияСлово СловоМногоПробелов
     
    если подставить DELIMS=    :Пробел" - уберёт пробел между Слово Слово
     
    P.S. Раз уж пошло такое извращение, конструкции с использование sed - приемлемы

    Всего записей: 49 | Зарегистр. 22-10-2008 | Отправлено: 18:18 02-04-2011 | Исправлено: sL4yer, 18:21 02-04-2011
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sL4yer
    Ну тогда тащи два слова по условию непустоты второго... И при этом естественно в разделители добавь пробел...
    Чтото типа IF "%%j"=="" (ECHO "%%i") ELSE (ECHO "%%i %%j")

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 22:39 02-04-2011
    suvolod



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос по интерпретатору команд cmd: В справке написано:
    //---------------------------
    Чтобы указать в одной строке несколько команд, следует разделить их символами && и заключить в кавычки.  
    //---------------------------
     
    Пробую написать батник: cmd /k "explorer && notepad"
    в итоге открывается лишь explorer... почему?
     
    И второй вопрос: на самом деле мне через бат-ник надо решить задачу похитрее - мне батником надо  из под учетки юзера, ограниченного в правах (сидящего в группе Пользователи), запустить интерпретатор команд cmd и передать ему на выполнение несколько команд одной строкой. Попробовал вот так:
     
    SET strCommand= \"cd d:\temp && d: && regedit off.reg\"
    cls
    runas.exe /user:Администратор "cmd /k %strCommand%"
     
    Короче, как-то странно все обрабатывается.. Как я понял, после ввода пароля администратора реально выполняется лишь первая часть команды (cmd /k "d:\temp - именно так, без закрывающей скобки), потом применяется regedit, причем два раза - сперва на файл off.reg, затем на закрывающую скобку \". А в конце вообще сыплются ошибки закрывающих кавычек.
     
    На всякой случай что я хотел получить:
    1. Запустить консоль из под учетки юзера с правами администратора
    2. В этой новой консоли автоматом перейти в каталог "d:\temp"
    3. В этом каталоге выполнить (с правами администатора) regedit off.reg

    Всего записей: 520 | Зарегистр. 18-10-2004 | Отправлено: 23:13 02-04-2011 | Исправлено: suvolod, 23:17 02-04-2011
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    suvolod
    Читай между строк - то есть в шапке
    Одинарный & для последовательного выполнения двух команд.
    Двойной && - вторая команда выполнится только если первая вернет код завершения успех(в случае запуска explorer надо будет пускать так: START explorer.exe).
    Дальше - главное: для решения твоей задачи тебе все это просто не нужно... Надо просто запустить командный скрипт от имени администратора. А уже в нем сделать все что надо - притом импорт REG-файла в реестр удобнее делать с помощью reg.exe(reg import /?)

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 23:33 02-04-2011
    suvolod



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    я читал, но мне это не помогло. пробовал и &&, и &. В моем случае (cmd /k "explorer && notepad") открывается только explorer. Если поменять местами (cmd /k "notepad && explorer") - только блокнот. Код возврата в командной строке я не вижу, но раз выполняется первая команда из списка, значит успех? Впрочем, он и при одинарном '&' выполняет тоже только первую команду..  
     
    Просто запуск скрипта не пройдет, я только часть кода батника привел, есть нюансы...
     
     
    Добавлено:
    yurkesha, спасибо.. Еще раз перечитал твое сообщение, и вроде догнал. Ключевые слова -  "код завершения успех". То есть пока окно первой команды не закроешь, остальные выполняться не будут. А я думал что под успехом понимается корректное открытие окна первой команды списка. Самое интересное, что explorer при закрытии по крестику не возвращает "успех", поэтому блокнот в моем примере вообще никогда не откроется.

    Всего записей: 520 | Зарегистр. 18-10-2004 | Отправлено: 09:42 03-04-2011 | Исправлено: suvolod, 10:01 03-04-2011
    JutecAlek

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    у меня похожий вопрос.. надо, используя runas, запустить консоль под другой учеткой, но чтобы консоль открылась в той же папке что и исходная. Т.е:
     
    1. Пусть я нахожусь в папке "C:\Documents and Settings\vova\Рабочий стол\Новая папка"
    2. Запускаю из этой папки батник с командой "runas /user:Администратор "cmd \k myproga.exe & myproga2.exe & ..."
     
    Проблема в том, что при запуске консоли из под администратора консоль открывается в папке "C:\windows\system32\" ..  сответственно о тех прогах, которые я хочу последовательно запустить (и которые лежит в той-же папке, что и батник), ничего не знает. Как побороть?

    Всего записей: 32 | Зарегистр. 18-02-2005 | Отправлено: 11:18 03-04-2011 | Исправлено: JutecAlek, 11:22 03-04-2011
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JutecAlek
    CD /D "%~dp0" в самом начале батника...

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 12:57 03-04-2011
    JutecAlek

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не срабатывает...  
    сделал батник:
     
    CD /D "%~dp0"
    runas /user:Администратор cmd
     
    запускаю из папки на рабочем столе юзера, ввожу пароль админа  -  в итоге окрывается консоль, запущенная от админа, но путь в ней по прежнему дефолтный, т.е. C:\Winodows\system32\

    Всего записей: 32 | Зарегистр. 18-02-2005 | Отправлено: 14:14 03-04-2011 | Исправлено: JutecAlek, 14:15 03-04-2011
    5peciali5t



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    JutecAlek
    возможно извращенски но как-то так не пробовал?
     
    "runas /user:Администратор "cmd \k "%cd%\myproga.exe" & "%cd%\myproga2.exe" & ..."

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 15:18 03-04-2011 | Исправлено: 5peciali5t, 15:24 03-04-2011
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    JutecAlek
    не тормози - в батнике который ты пытаешься запусть от имени другого пользователя поставь эту команду первой...
     
    Добавлено:
    А уже из самого батника будут выполняться все оставшиеся команды...

    ----------
    Всем непричастным рекомендую прогулки на свежем воздухе

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 15:24 03-04-2011
    SuperKolobok



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите если возможно - как батником определить чип видеокарты nvidia или amd ??
     
    примерно догадываюсь что надо копать реестр, видимо тут
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\PCI
    если встречается VEN_10DE то nvidia
    если встречается VEN_1002 то amd
     
    возможно это выяснить в батнике ?

    Всего записей: 218 | Зарегистр. 14-12-2005 | Отправлено: 17:13 03-04-2011 | Исправлено: SuperKolobok, 17:20 03-04-2011
    01MDM



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

    Код:
     
    wmic win32_videocontroller get * /value
    wmic win32_videocontroller get videoprocessor
     



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

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



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

    Цитата:
     
    C:\Users\>wmic win32_videocontroller get * /value
    win32_videocontroller - Alias not found.
     
    C:\Users\>wmic win32_videocontroller get videoprocessor
    win32_videocontroller - Alias not found.
     

     
    Win XP Pro
     

    Цитата:
     
    C:\Documents and Settings\Администратор>wmic win32_videocontroller get * /value
    win32_videocontroller - Псевдоним не найден.
     
    C:\Documents and Settings\Администратор>wmic win32_videocontroller get * /value
    win32_videocontroller - Псевдоним не найден.
     
    C:\Documents and Settings\Администратор>
     

     
    Добавлено:
    01MDM
     
    Win 7 x64
     

    Цитата:
     
    C:\Users\>wmic win32_videocontroller get * /value
    win32_videocontroller - Alias not found.
     
    C:\Users\>wmic win32_videocontroller get videoprocessor
    win32_videocontroller - Alias not found.
     

     
    Win XP Pro
     

    Цитата:
     
    C:\Documents and Settings\Администратор>wmic win32_videocontroller get * /value
    win32_videocontroller - Псевдоним не найден.
     
    C:\Documents and Settings\Администратор>wmic win32_videocontroller get * /value
    win32_videocontroller - Псевдоним не найден.
     
    C:\Documents and Settings\Администратор>
     

    Всего записей: 984 | Зарегистр. 04-10-2005 | Отправлено: 19:33 03-04-2011
    01MDM



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

    Код:
     
    wmic path win32_videocontroller get * /value  
     



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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:59 03-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