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

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

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

vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:40 25-01-2010 | Исправлено: bomzzz, 13:37 20-08-2010
    king_stiven

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

    Код:
    >%systemroot%\temp\~2.bat (
    echo echo off
    echo chcp 1251
    echo del %systemroot%\temp\~2.bat /q
    )
    start /min %systemroot%\temp\~2.bat /b

    Всего записей: 2232 | Зарегистр. 17-07-2006 | Отправлено: 10:06 02-02-2010
    xome



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста, как скрыть пароль (зашифровать) в батнике? Пароль обязателен. Прописывается в самом батнике. (net user ПОЛЬЗОВАТЕЛЬ ПАРОЛЬ /add). Подходит только бат.

    Всего записей: 91 | Зарегистр. 01-08-2008 | Отправлено: 14:50 02-02-2010
    Alecsan



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужна помощь шарящих людей!!!
    Требуется организовать автоматическую запись дисков. То есть, положил диск нажал на кнопку, чтоб лоток заехал, подождал, диск выехал с записанной информацией; положил следующий нажал кнопочку и т. д. На чистые диски - нужно, что б сразу писало, На перезаписываемые - удаляло инфу и записывало, а на мультисесионных - дописывало(если мало места - выбрасывало диск). И что бы всё это происходило без участии пользователя(только положил диск, нажал на кнопку и забрал)
    Как это прописать в nerocmd? или может посоветуете что другое.
     
    Да, но это уже не по теме, для флешек как организовать подобное. Вставил флешку подождал, услышал звуковой или др. сигнал. Вытянул флешку. Нужно что б писало автоматом один каталог и отключало флешку. Может, кто знает.  
    Подскажите!

    Всего записей: 4946 | Зарегистр. 29-08-2008 | Отправлено: 17:52 02-02-2010
    VladikoVoron

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте!
    Подскажите, как сделать: запускается программа через бат-файл, но перед запуском надо проверить, есть ли обновления, если да, то скопировать и удалить индексы с каталога программы, если обновлений нет, то просто запустить программу.
     

    Код:
    xcopy e:\update\* c:\prog\ /S /D /V /K /Y
    ...
    del /s /q c:\prog\*.cdx
     
    start программа.exe  


    Всего записей: 11 | Зарегистр. 05-12-2007 | Отправлено: 01:13 04-02-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VladikoVoron if not exist e:\update\* goto :_noupdate  
    поможет ?

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 09:04 04-02-2010
    Greay



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Как реализовать что бы все файлы в разделе (на всём диске) переименовывались в другое расширение (включая все подпапки). Без запросов и с самозавершением. Например *.docx, *.doc в *.bak
    Спасибо.

    Всего записей: 254 | Зарегистр. 09-05-2004 | Отправлено: 14:20 04-02-2010
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Greay for /r c:\ %%a in ( *.docx  *.doc ) do ren "%%~fa" *.bak

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 15:56 04-02-2010 | Исправлено: wolf0425, 15:58 04-02-2010
    Greay



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    wolf0425
    Спасибо. То что надо...  
    Ещё маленький нюанс:
    Как сделать что бы файлы *.docx  переименовывались в *.bak, а *.doc в *.buk  
    И скрыть само окно.

    Всего записей: 254 | Зарегистр. 09-05-2004 | Отправлено: 17:17 04-02-2010 | Исправлено: Greay, 17:25 04-02-2010
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    возможно, тут помогут - не ловлю, где накосячено..  
     
    задача - рассылка всем компам из списка одного файла.  
    исполнить пытался так:  
    http://forum.ru-board.com/topic.cgi?forum=5&topic=29819&start=1780#17
    обратные слеши перед именем - вроде б нужны.  
    Насчет имени для ресурса подключаемого - так понимаю, что тож нужно (без него вообще не пахало, с ним - иногда пашет)
    Или что вообще не так?  


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

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 18:03 04-02-2010
    Ykidia



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kirillhome
    Цитата:
    Ykidia  
    Есть засады:  
    1) mountvoll - не вывел мне информацию о виртуальном приводе (реального - нет, проверить не могу).  
    2) mountvoll - не вывел мне информацию о подмепленном сетевом диске (т.е. net use * \\ресурс\шара - Диск z cейчас подключен, смотрю через mountvoll - нет ничего).

     
    О! Случайно набрел на вот такое:

    Код:
    wmic logicaldisk get name

    У меня вывел список 1) того, что выводит mountvol; 2) того, что выводит net use; 3) того, что выводит subst; 4) того, что не выводит ни mountvol, ни net use, ни subst. Вот результат вывода моих дисков:

    Код:
    C:\>wmic logicaldisk get name
    Name
    A:
    C:
    D:
    E:
    L:
    M:
    P:
    Z:

    Комментарии:
    A: - физический дисковод 3,5 (показывается mountvol, также в реестре);
    C: - системный раздел (показывается mountvol, также в реестре);
    D: - виртуальный привод, созданный UltraISO;
    E: - еще один раздел на том же винчестере, что и системный (показывается mountvol, также в реестре);
    L: - подключенная папка \\Server\L (показывается net use);
    M: - подключенная папка \\Server\M (показывается net use);
    P: - отображенный локальный путь E:\Project (показывается subst);
    Z: - физический привод CD/DVD (показывается mountvol, также в реестре).
     
    Если выяснится, что wmic можно выполнять операции переназначения, будет здорово и немного обидно, ведь батничек для своей задачи я уже накатал, причем задача по ходу ее решения видоизменилась.

    Всего записей: 242 | Зарегистр. 03-03-2005 | Отправлено: 19:12 04-02-2010 | Исправлено: Ykidia, 19:20 04-02-2010
    wolf0425



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

    Цитата:
    Как сделать что бы файлы *.docx  переименовывались в *.bak, а *.doc в *.buk  

    последовательно - сначала for для первого, потом для второго.
    сам поправишь, тренируйся.

    Цитата:
    И скрыть само окно.

    cmdow.exe @ /hid
    cmdow ищешь в шапке темы
     

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 20:08 04-02-2010
    VladikoVoron

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425 неа. Забыл уточнить, что в папке update постоянно находятся файлы. A xcopy смотрит не новее ли файлы в update, если да, то обновляет  c:\prog.  
     
    В этом деле опыта нет, но думаю может как-то так:

    Код:
     xcopy e:\update\* c:\prog\ /S /D /V /K /Y  | find "скопировано: 0" 1  
    if errorlevel 1  goto :_noupdate  


    Всего записей: 11 | Зарегистр. 05-12-2007 | Отправлено: 20:21 04-02-2010
    wolf0425



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

    Цитата:
    В этом деле опыта нет, но думаю может как-то так:

    Код:
     xcopy e:\update\* c:\prog\ /S /D /V /K /Y  | find "скопировано: 0" 1  
    if errorlevel 1  goto :_noupdate  

    мысль здравая, но 1  там у тебя что делает, имя файла изображает? errorlevel вшит в код find

    Код:
    xcopy /S /D /V /K /Y  e:\update\* c:\prog\ | findstr /b /c:"0 File(s) copied" && goto :_noupdate
    Ну или сообщение русского xcopy впишешь сам

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 21:41 04-02-2010 | Исправлено: wolf0425, 22:16 04-02-2010
    Ykidia



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Еще вопрос. Вот на этой картинке наглядно показано то, что я хочу сделать батником: 1) включить кэш записи и 2) включить повышенную производительность. В моем случае название диска/тома Volume0 (вместо Hitachi HDS721075KLA SCSI Disk Device).
    Нашел ключи реестра, отвечающие за это: CacheIsPowerProtected и UserWriteCacheSetting. Находятся в ветке [HKLM\SYSTEM\CurrentControlSet\Enum\IDE\DiskVolume01.0.00__\4&36887771&0&0.0.0\DeviceParameters\Disk]. Однако их изменение вступает в силу только после перезагрузки, а как бы в батнике сделать так, чтобы без перезагрузки?

    Всего записей: 242 | Зарегистр. 03-03-2005 | Отправлено: 21:44 04-02-2010
    Kirillhome



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ykidia
    Сделать изменения в реестре, отключить и подключить заново диск - не поможет?
     
    Добавлено:
    bredonosec

    Цитата:
    вроде один раз получалось, но повторные проверки нифига не дали - не пишется, и точно так же не находит ((  

    Так написало же ошибку:

    Цитата:
    c:\[..]\My Documents\Sys>net use m: \\DD_PEPR\c$ [pass] /user:[domain\admin]   || goto NO_CONN
    System error 85 has occurred.
     
    The local device name is already in use.

    Т.е. имя m: - уже используется.
    Если надо использовать строго это имя - то сначала вставь

    Код:
    net use m: /DELETE

     

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 22:52 04-02-2010
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kirillhome
    ок, спробую на раоте..  
     
     
    а вообще не давая имени ресурсу, через  
    net use smth
    можно?  
     
    upd
    да, именно этого и не хватало.  
    Теперь вопрос, как можно комменты класть в ту же строку?  
    Видел вариант с комбинированием строк:
     
    command /parameter &REM [comments]
     
    и видел такой вариант.
    command /parameter ;[comments]
     
    насчет первого, как понял, работает, а второй корректен?

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 05:58 05-02-2010 | Исправлено: bredonosec, 10:09 05-02-2010
    wolf0425



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

    Цитата:
    насчет первого, как понял, работает, а второй корректен?  
    а второй некорректен - прокатывает только с теми command которым наплевать на непонятные ключи.
    более короткий вариант первого:
    command /parameter &: комменатрий: метки не в начале строки - игнорируются

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 12:14 05-02-2010
    bredonosec



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

    Цитата:
    command /parameter &: комменатрий:  

    то есть, двоеточие?  
    хм.. где-то читал, что комменты через двоеточия могут кидать ошибки..  
    а, вот -  
    http://www.robvanderwoude.com/comments.php
    и еще где-то..  


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

    Всего записей: 16269 | Зарегистр. 13-02-2003 | Отправлено: 15:55 05-02-2010
    Ykidia



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kirillhome
    Вряд ли, хотя я не успел попробовать, а нашел dskcache.exe от MS, который свободно не раздается, а только через службу поддержки (ну, это нам не помеха ). Можно выполнить, к примеру,
    Код:
    dskcache.exe +p +w E:

    и побежать смотреть, установились ли галочки в дополнительных свойствах того дискового устройства, на котором находится раздел под буквой E:
    Потом выполнить
    Код:
    dskcache.exe -p -w E:

    и убедиться, что обе галочки сбросились. И т.д.
     
    P.S. С трудом нашел данный файл, отковырял где-то с помощью мамонта (mmnt.ru/int/). Если надо кому, пишите, вышлю. Хотя версия dskcache.exe кажется староватой (1.0), у меня в Windows Server 2003 SP2 на томе RAID он отрабатывает как надо.

    Всего записей: 242 | Зарегистр. 03-03-2005 | Отправлено: 16:55 05-02-2010
    wolf0425



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

    Цитата:
    хм.. где-то читал, что комменты через двоеточия могут кидать ошибки..  
    а, вот -  
    http://www.robvanderwoude.com/comments.php
    и еще где-то..
    ну, и читаем: depite all, there is nothing wrong with using double colons for comments as long as you understand the limitations
     
    основное ограничение - внутри блоков () использовать нельзя, в отличие от rem.  
    Что совершенно понятно, imho

    Всего записей: 2929 | Зарегистр. 25-04-2007 | Отправлено: 11:56 07-02-2010 | Исправлено: wolf0425, 11:58 07-02-2010
       

    Страницы: 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 8
    vu1tur (04-09-2010 17:46): http://forum.ru-board.com/topic.cgi?forum=62&topic=21297


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru