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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    01MDM



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

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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 06:30 14-07-2011
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    забыл как отрисовать имя файла без расширения
     
    напомните плз
     
    echo %file%

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 11:03 14-07-2011
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    mouser for %%a in ( "%file%") do echo %%~na
     
    ну или аналогично через call, а не через for

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:25 14-07-2011
    mouser

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    в папке NEW 3 файла но почему последний за дваивается ????
     

    Код:
    @echo off
    cls
    cd NEW
    For %%a In (*.jar) DO SET FILE=%%a&call :GET
    :GET
    echo %FILE%
     

    Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 12:11 14-07-2011
    smirnvlad

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

    Цитата:
    почему последний за дваивается

    потому что после завершения for продолжается выполнение скрипта и ещё один echo %FILE% задваивает последний файл
    перед  :GET добавить exit или goto:EOF

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 13:10 14-07-2011
    zherebcov

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    не подскажите, как получить "код экземпляра устройства" через батник.
    Конкретно нужен "код экземпляра устройства" flesh накопителей.

    Всего записей: 3 | Зарегистр. 22-05-2011 | Отправлено: 17:13 15-07-2011
    NIKZZZZ



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

    Цитата:
    как получить "код экземпляра устройства" через батник.  


    Код:
    set drive=c:
    FOR /F "skip=1 tokens=2 delims=:" %%i IN ('vol %drive%') DO Set "UUID=%%i"
    Set "UUID=%UUID: =%"
    echo %UUID%
     

     
    Это?
     
     
    Добавлено:
    Наверно под "код экземпляра устройства" , эти русские переводы, имелся ввиду ID
    Тогда
    Код:
    devcon.ехе hwids *
    в помощь.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:01 15-07-2011 | Исправлено: NIKZZZZ, 20:51 15-07-2011
    Kai

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как проще всего получить системный путь С:\Documents and Settings\All Users\Application Data\ в WinXP или C:\ProgramData\ в Win7. Через REG / WMIC / RUNDLL32 или что-то ещё? И как именно?

    Всего записей: 366 | Зарегистр. 23-10-2003 | Отправлено: 15:02 16-07-2011 | Исправлено: Kai, 15:08 16-07-2011
    AlexeyFX



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, как автоматически закрыть произвольное приложение по истечению определённого кол-ва времени, например - закрытие браузера через 2 часа после запуска bat файла?

    Всего записей: 50 | Зарегистр. 15-02-2011 | Отправлено: 15:44 16-07-2011
    5peciali5t



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    добрый день местным гуру!
     
    есть каталог (1 уровень) с другими вложенными каталогами (2 уровень), в каждом из которых есть один исполняемый файл установщика и командный файл для его автоматической установки. файлы установщиков будут периодически обновляться, соответственно с большой вероятностью будут меняться имена установщиков.
    в командном файле (silent.cmd) следующий код:

    Код:
    @echo off
    echo Skype
    For %%a In (*.exe) DO SET "setup=%%a"
    "%setup%" /VERYSILENT /NOLAUNCH /LANG=ru
    exit

    и т.д. в других каталогах, в каждом командном файле меняется в основном последняя строка запуска с индивидуальными ключами для данного типа инсталляторов и иногда добавляются другие действия, сопутствующие установке и последующей настройке приложения
    примерный список вложенных папок содержащих установщики
    поскольку со временем будет меняться количество таких программ в каждой индивидуальной папке с одним исполняемым файлом и одним командным файлом на автоматическую установку с отвязкой от имени установщика хотелось бы расположить в каталоге 1-го уровня командный файл в котором должен быть код, который независимо от имени командного файла расположенного в подкаталогах 2-го уровня искал бы их и последовательно один за другим подставлял в цикл установки общего количества (возможно через call или как то иначе)

    ----------
    Intel Ci7-2600K 3.4@4.5 Ghz/GeForce GTX 550 Ti 1024Mb/240Gb SSD+9Tb HDD's/RAM 16 Gb DDR3 1600/23" ACER T231Hbmid Multi-Touch Sensor Display

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пожалуйста помогите нписать bat-ник:
    нужно найти в текстовом файле слово мастер и вставить после него Иванов,
    затем найти слово электрик и вставить после него Сидоров,
    затем найти слово участок и вставить после него 64
     
     

    Всего записей: 184 | Зарегистр. 21-04-2007 | Отправлено: 00:33 17-07-2011
    wolf0425



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

    Код:
    @echo off
    chcp 1251
    sed -r -i "s;(мастер);\1 Иванов;gi" fff
     

    sed -r -i "s;(мастер);\1 Иванов;gi" file.txt
    sed.exe ищешь в шапке или в гугле

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 09:56 17-07-2011 | Исправлено: wolf0425, 16:45 18-07-2011
    lemor



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

    Цитата:
    @echo off
    chcp 1251
    sed -r -i "s;(мастер);\1 Иванов;gi" fff  

    Спасибо вам.

    Всего записей: 184 | Зарегистр. 21-04-2007 | Отправлено: 12:13 17-07-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    Подскажите, где здесь ошибка?

    Код:
    if /i "%tf%" equ "true" >nul chcp 1251 & >>%logfile% echo.%~1;%2;%~z1;%change%;%perc% & >nul chcp 866

    если пишу так, то все работает

    Код:
    >nul chcp 1251
    if /i "%tf%" equ "true" >>%logfile% echo.%~1;%2;%~z1;%change%;%perc%
    >nul chcp 866


    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 14:28 17-07-2011 | Исправлено: lorents, 14:41 17-07-2011
    Elroir



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

    Код:
     
    if /i "%tf%" equ "true" ((>nul chcp 1251) & (>>%logfile% echo.%~1;%2;%~z1;%change%;%perc%) & (>nul chcp 866))
     


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:10 17-07-2011 | Исправлено: Elroir, 17:11 17-07-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    попробовал, все равно не работает, точнее на работает >nul chcp 1251 и >nul chcp 866

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 18:47 17-07-2011
    Free_Soft



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

    Код:
    chcp 1251 >nul  и chcp 866 >nul

     
    Добавлено:
    и еще так:
    1>%logfile% echo...

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

    Всего записей: 1536 | Зарегистр. 19-04-2010 | Отправлено: 19:39 17-07-2011
    lorents



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Free_Soft
    Результат тот же, ладно оставлю как есть, просто странно почему не работает.

    ----------
    Image Catalyst - оптимизация изображений без потери качества

    Всего записей: 3297 | Зарегистр. 30-12-2007 | Отправлено: 22:06 17-07-2011
    lemor



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

    Цитата:
    пожалуйста помогите нписать bat-ник:
    нужно найти в текстовом файле слово мастер и вставить после него Иванов,
    затем найти слово электрик и вставить после него Сидоров,
    затем найти слово участок и вставить после него 64


    Цитата:
    @echo off
    chcp 1251
    sed -r -i "s;(мастер);\1 Иванов;gi" fff
     
    sed -r -i "s;(мастер);\1 Иванов;gi" file.txt
    sed.exe ищешь в швпук или в гугле  

     
    А средствами windows (без сторонних програм) можно?
    надо что-бы на любом копьютере работало.

    Всего записей: 184 | Зарегистр. 21-04-2007 | Отправлено: 22:39 17-07-2011
    Cosmogor



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lemor, без сторонних утилит очень сложно текст парсить.
    Вот, попробуй так.
     
    Код:
     
    echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=> %temp%.\sbs2.com
    echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU!WvX0GwUY Wv;ovBX2Gv0ExGIuht6>> %temp%.\sbs2.com
    echo ?@}IKuNWpe~Fpe?FNHlF?wGMECIQqo{Ox{T?kPv@jeoSeIlRFD@{AyEKj@>> %temp%.\sbs2.com
    echo iqe~1NeAyR?mHAG~BGRgB{~H?o~TsdgCYqe?HR~upkpBG?~slJBCyA?@xA>> %temp%.\sbs2.com
    echo LZp{xq`Cs?H[C_vHDyB?Hos@QslFA@wQ~~x}viH}`LYNBGyA?@xAB?sUq`>> %temp%.\sbs2.com
    echo LRy@PwtCYQEuFK@A~BxPtDss@fFqjVmzD@qBEOEenU?`eHHeBCMs?FExep>> %temp%.\sbs2.com
    echo LHsPBGyA?@xAunjzA}EKNs@CA?wQpQpKLBHv?s`WJ`LRCYyIWMJaejCksl>> %temp%.\sbs2.com
    echo H[GyFGhHBwHZjjHeoFasuFUJeHeB?OsQH[xeHCPvqFj@oq@eNc?~}Nu??O>> %temp%.\sbs2.com
    echo ~oEwoAjBKs?Zp`LBzHQzyEFrAWAG{EFrAqAGYwHTECIQ{coKIsaCsf{Oe~>> %temp%.\sbs2.com
    echo CK}Ayre~CNFA{rAyEKFACrA{EKGAjbA}eKGSjNMtQFtc{OAyDGFj?{FDGQ>> %temp%.\sbs2.com
    echo KAjNVk_OCAx@e?f{o?CosI}1EGizhljJ~H1ZeG}JBA~rACBMDGjjDG@g0>> %temp%.\sbs2.com
     
    %temp%.\sbs2.com 0 "мастер" "мастер: Иванов" < "input.txt" > "2.txt"
    %temp%.\sbs2.com 0 "электрик" "электрик: Сидоров" < "2.txt" > "3.txt"
    %temp%.\sbs2.com 0 "участок" "участок: 64" < "3.txt" > "onput.txt"
    del "2.txt" "3.txt" "%temp%.\sbs2.com"

     
    Удаляет кавычки.
    %temp%.\sbs2.com 0 "$22" "кавычки" < "1.txt" > "2.txt"
    Быстро удалить все пустые строки
    %temp%.\sbs2.com 0 "$0d$0a$0d$0a" "" < "1.txt" > "2.txt"
     

    Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 00:19 18-07-2011 | Исправлено: Cosmogor, 00:26 18-07-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