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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dvarok так с каким путём запускается батник и по какому пути лежит  temp ?
    если пути вида \\server\share и temp лежит вместе с батником -  
    замени temp на %~dp0temp что-ли...

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 13:50 26-04-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dvarok
    Какой программой создаётся temp файл? Приведи, какая конкретно строка содержится в temp файле.

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 13:58 26-04-2007
    Elroir



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

    Цитата:
    Подскажите номер кодовой страницы для украинской раскладки клавиатуры

    Судя по информации Microsoft-а и ANSI и OEM такие-же, как и для русской: ANSI=1251, OEM=866.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:02 26-04-2007 | Исправлено: Elroir, 14:03 26-04-2007
    Maza Faka



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    Да можно проще без "IF":

    Код:
     
    @Echo off
    Ping -n 3 -w 1000 google.com | Find "TTL">NUL && Start "" "C:\Windows\notepad.exe"
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:18 26-04-2007 | Исправлено: Maza Faka, 14:20 26-04-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    кстати, по поводу танцев с бубном вокруг пинга - это на какой ОС пинг не выдает правильный (ненулевой) еррорлевел при недоступности хоста?
    у меня (xp eng sp2) - выдает вроде исправно...

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 14:41 26-04-2007 | Исправлено: wolf0425, 14:45 26-04-2007
    Tipulatoid



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

    Цитата:
    Судя по информации Microsoft-а и ANSI и OEM такие-же, как и для русской: ANSI=1251, OEM=866.

    Вы как всегда правы
    Gabzya
    Вот этот код у меня нормально отработал на присланных тобой файлах и папках:

    Код:
    @echo off
    setlocal enabledelayedexpansion
    chcp 1251 > nul
     
    set first_symb=_
    set second_symb=ї
    set third_symb=_
    set forth_symb=Ї
     
    :rendir
    for /f "tokens=*" %%a in ('dir /b /a:d /s') do (
       set dirname=%%a
       set dirname=!dirname:%first_symb%=1!
       set dirname=!dirname:%second_symb%=2!
       set dirname=!dirname:%third_symb%=3!
       set dirname=!dirname:%forth_symb%=4!
       move "%%a" "!dirname!" 2>nul | find /i "перемещено" && goto rendir
    )
     
    :renfiles
    for /f "tokens=*" %%a in ('dir /b /a:-d /s') do (
       set filename=%%~nxa
       set filename=!filename:%first_symb%=1!
       set filename=!filename:%second_symb%=2!
       set filename=!filename:%third_symb%=3!
       set filename=!filename:%forth_symb%=4!
       ren "%%a" "!filename!"
    )

    Сохранять батник теперь надо в ANSI кодировке. Как проверить - открываешь этот батник в Блокноте, и слово "перемещено" читается без проблем
     
    wolf0425

    Цитата:
     это на какой ОС пинг не выдает правильный (ненулевой) еррорлевел при недоступности хоста?

    Точно знаю, что на Win 2000 такая ерунда

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 14:59 26-04-2007 | Исправлено: Tipulatoid, 15:05 26-04-2007
    KapralBel



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

    Цитата:
    Точно знаю, что на Win 2000 такая ерунда

    приведи батничек, Который криво исполняется на 2000 (с указанием ЕррорЛевелов)

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:08 26-04-2007
    Tipulatoid



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

    Цитата:
    приведи батничек, Который криво исполняется на 2000 (с указанием ЕррорЛевелов)

     
    Хорошо, возможно, насчет "точно знаю" это я погорячился. Просто эта тема здесь обсуждалась. Например такой код:

    Код:
    @echo off  
    setlocal  
    for /f "tokens=*" %%a in (ip.txt) do (  
    ping %%a -n 1 -l 1450 && echo %%a >> listing.txt  
    )

     
    Где в ip.txt - список ip-шников
    На XP он отработает нормально, а на 2000 в listing.txt запишутся все ip-шники

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 15:27 26-04-2007
    KapralBel



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

    Код:
     
    @Echo off
    Ping www.microsoft.com >Log.txt
    Echo %errorLevel% >>Log.txt
    Ping www.microsoftkfhsdffsd.com >>Log.txt
    Echo %errorLevel% >>Log.txt

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:37 26-04-2007
    Tipulatoid



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

    Цитата:
    А если так

    Не могу сейчас проверить - 2000 на работе, а я дома уже на XP

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 15:46 26-04-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tipulatoid я  проверил, действительно не выдает ошибку
    C:\WINNT\system32\ping.exe -w 1000 -n 1 192.168.1.140
    echo. !ERRORLEVEL=%ERRORLEVEL%  
    ver
     
    Статистика Ping для 192.168.1.140:
        Пакетов: отправлено = 1, получено = 0, потеряно = 1 (100% потерь),
    Приблизительное время передачи и приема:
        наименьшее = 0мс, наибольшее =  0мс, среднее =  0мс
     !ERRORLEVEL=0
     
    Microsoft Windows 2000 [Версия 5.00.2195]
     
     
    Добавлено:

    Цитата:
    В моем предыдущем посте кликни на слове "компилятором" и все  

    Forbidden

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 15:52 26-04-2007 | Исправлено: wolf0425, 15:59 26-04-2007
    Gabzya



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

    Цитата:
    и слово "перемещено" читается без проблем  

    если создавать в ФАРе, то не получается, открывае в проводнике кракозяблы, если в проводнике, то в фаре кракозяблы...
    о_О как ты его создал???
    отработал говориш? а у тебя буквы  где? і І

    Всего записей: 1149 | Зарегистр. 14-12-2004 | Отправлено: 16:13 26-04-2007
    Tipulatoid



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

    Цитата:
    Forbidden

    http://www.abyssmedia.com/downloads/quickbfc.exe
    Gabzya

    Цитата:
    отработал говориш? а у тебя буквы  где? і І

    На мыло тебе выслал рабочий вариант (с другого адреса)

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 16:13 26-04-2007 | Исправлено: Tipulatoid, 16:16 26-04-2007
    Elroir



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

    Цитата:
    Здравствуйте еще раз, застрелите меня...

    Ну... стрелять пока не будем
    Мне кажется, ты немного неверно используешь psexec.
    Насколько я понимаю, надо делать так:
    1. Проверяем, что следующая команда работает:
        psexec \\pentium -u USER -p PASS -i cmd.exe /c c:\1.mp3
    1.1 Если нет - надо убедиться, что на \\pentium машине существует админская шара ADMIN$ и отключен Simple File Sharing (без этого psexec работать не будет).
    2. Создаем батник с этой командой и компилируем его.
    Примечание - оператор должен будет закрыть окошко проигрывателя, иначе psexec не закончит работу.
     
    Добавлено:
    Можно там же - на C:\ создать батник play.cmd в котором будет строка "start c:\1.mp3".
    И запускать с помощью psexec этот батник:

    Код:
     
    psexec \\pentium -u USER -p PASS -i c:\play.cmd
     

    В этом случае, psexec будет выходить сразу после запуска play.cmd.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:18 26-04-2007 | Исправлено: Elroir, 16:28 26-04-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    нафига батник то? чем хуже  
    psexec \\pentium -u USER -p PASS -i cmd.exe /c start c:\1.mp3  
     
    вот если имя файла будет не c:\1.mp3 а что-то с кавычками  -придётся извращаться

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 17:33 26-04-2007 | Исправлено: wolf0425, 17:34 26-04-2007
    Gabzya



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

    Цитата:
    На мыло тебе выслал рабочий вариант (с другого адреса)

    там в батнике вместо "і" "І" подчеркивания "_"
    поставить буквы не получается, вместо них ставится "?"

    Всего записей: 1149 | Зарегистр. 14-12-2004 | Отправлено: 18:28 26-04-2007 | Исправлено: Gabzya, 18:40 26-04-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    Ты прав - в данном случае батник не нужен.

    Цитата:
    вот если имя файла будет не c:\1.mp3 а что-то с кавычками  -придётся извращаться

    А вот для этого можно использовать батник
     
    Добавлено:
    А можно и не использовать:

    Код:
     
    psexec \\pentium -u USER -p PASS -i cmd.exe /c start /D"c:\" "c:\1 2 3.mp3"
     

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:37 26-04-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Gabzya ты хоть новый батник в ANSI  (=Win) редактируешь?

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 18:50 26-04-2007
    DeMLaN

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, а подскажите такие вещи:
    1. В inf файле куча разделов, мне нужно в один из разделов к примеру раздел [AddReg] необходимо из start.cmd дописать строку, к примеру HKCU,"Software\...","RunCount",0x00,0, как это можно сделать???
    2. как с помощью комманды findstr (к примеру если один ключ поиска: findstd /v /i /c:bedtry backup.bak > back.log) и при нескольких ключах поиска (выборки) осуществить поиск строк с нужным содержимым и записать его результаты в файл back.log
    Немного запутано получилось, но я надеюсь вы меня поймете...

    Всего записей: 29 | Зарегистр. 26-10-2006 | Отправлено: 19:09 26-04-2007 | Исправлено: DeMLaN, 19:14 26-04-2007
    Elroir



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

    Код:
     
    @echo off
    setlocal
    for /f "tokens=1 delims=[]" %%a in ('find /n /i "[AddReg]" test.inf') do set "num=%%a"
    set /a "num+=1"
    addline HKCU,"Software\...","RunCount",0x00,0 %num% test.inf>nul
     

    То, что выделено меняешь на свои значения.
    Утилиту addline можно найти в шапке, в разделе Полезные утилиты.
    2. Если я правильно понял, тебе надо просто запускать findstr с нужными строчками поиска и добавлением ">>back.log" в конце. При этом результат добавляется в файл back.log.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:40 26-04-2007
       

    Страницы: 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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru