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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах 6
(часть 1, часть 2, часть 3, часть 4, часть 5)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    Froz



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    batniki,
     
    echo set /P return="(y/n): " >>debug.txt
    echo if %%return%%==y goto label >>debug.txt
    echo if %%return%%==n exit >>debug.txt

    Всего записей: 161 | Зарегистр. 03-02-2004 | Отправлено: 01:56 10-11-2008
    Pashkaa



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Добрый день.
    Подскажите, как сортировать текстовые файлы (123.txt, 234.txt) по разным папкам, в зависимости от содержимого текстового файла. Т.е., если в 123.txt найдено слово (байт), то его в папку "1", если найдено слово (порт) - в папку "2"?
    Спасибо

    Всего записей: 44 | Зарегистр. 05-06-2006 | Отправлено: 12:45 10-11-2008
    demon1981



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите как батником понять что за айпишником комп или принтер? надо просканировать подсеть. Скажем 192.168.10.х и отобрать только принтера в текстовичок скажем

    Всего записей: 189 | Зарегистр. 28-03-2007 | Отправлено: 14:22 10-11-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pashkaa
    Ищет в текущем каталоге внутри текстовых файлов

    Код:
    chcp 1251 > nul
    for %%i in (*.txt) do (
        find "байт" "%%i" > nul && MOVE "%%i" 1
        find "порт" "%%i" > nul && MOVE "%%i" 2
    )

    не проверял.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:56 10-11-2008 | Исправлено: king_stiven, 14:59 10-11-2008
    demon1981



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pashkaa
    можно на каждое нужное слово свой проход делать и ложить в свою нужную папку
    скажем что-то типа
    for %f in (*.txt) do (
    set var1=find /i "ilona"<%f
    if var1.....)

    Всего записей: 189 | Зарегистр. 28-03-2007 | Отправлено: 15:24 10-11-2008
    johnmar



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nightlight, спасибо!
    попробую разобраться с этой утилитой
    жалко что описание на английском...
     
    Ещё вопрос:
    Как разбить текстовый файл file.txt на строки str(i).txt (1 < i < n) ?
     
    Например есть программа (консольная) prog.exe
    необходимо выполнить:
    for %%c in (str*.txt) do prog < %%c >> tmp.log
     
    т.к. файл не разбит на строки, получается только для всего файла:
    prog < file.txt > tmp.log
     
    а нужно n раз (по разу для каждой строки)
     
    будет ещё лучше, если получить результат (выполнение prog n раз с подстановкой вместо stdin строки) без разбиения файла на кучу мелких (каждый на строку), но не представляю как это сделать...

    Всего записей: 30 | Зарегистр. 28-03-2008 | Отправлено: 15:31 10-11-2008
    stydik



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

    Цитата:
    Ребята, нужен скрипт. Помогите с созданием. Объясню почему именно скрипт. Я написал батник, который забирает с сетевого диска документы и пакует их в формат с датой+время.
     
    @echo Начнем >> 1.log
    @Echo off
    @DATE /t >> 1.log
    @TIME /T >> 1.log
    @echo Копирую и сохраняю результат копирования в лог ...
    @xcopy v:\post\*.doc /z /c /Q >> 1.log
    @echo Пакую... >> 1.log  
    @rar a -ag  + YYYY:MM:DD:HH:MM \*.doc >> 1.log
    @echo Перемещаю архив... в папку TEMP >> 1.log
    @move *.rar TEMP
    @echo Удаляю файл doc... >> 1.log
    @del /F d:\*.doc
    @echo Cделал... >> 1.log  

     
    Вот создал скрипт
     

    Код:
    Set oShell = WScript.CreateObject("WScript.Shell")
    While True
    oShell.Run "с:\mycmd.cmd", 0, False
    WScript.Sleep 1800000
    Wend

     
    Этот скрипт запускает мой cmd через каждые 1800000 мск. Без всяких консольных окон и т.д.

    Всего записей: 1510 | Зарегистр. 03-03-2008 | Отправлено: 16:18 10-11-2008
    losttda

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

    Цитата:
    [/q][q]У меня это сделано таким скриптом - http://taciturn-shadow.spb.ru/UniRoute.cmd - успешно работает от NT4 до 2008 сервера.

     
    Спасибо, такой вариант подошёл идеально.

    Всего записей: 25 | Зарегистр. 30-05-2007 | Отправлено: 18:14 10-11-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    losttda
    были случаи (несколько провов, локалок и адаптеров), когда не помогала команда route print (она же netstat -r)
    для всех адаптеров можно смотреть так netsh diag show gateway
    однако, дефолтный шлюз не всегда удавалось получить корректно
    после долгих поисков было найдено решение искать шлюз в реестре
     
    для xp
    Код:
    for /f "tokens=3 " %%a in ('reg query "HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces" /s^|findstr DhcpDefaultGateway') do set "gate=%%a"
    for /f "tokens=1 delims=\" %%a in ("%gate%") do set "gate=%%a"
    echo "%gate%"
     
    для 2k3
    Код:
    for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces" /v DhcpDefaultGateway /t reg_multi_sz /s^|findstr REG_MULTI_SZ') do echo "%%a"
     
    на остальных OCях не тестировалось за ненадобностью

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 02:02 11-11-2008
    stydik



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день. Ребята, есть такой батник. Упаковывает файлы которые больше или равны определенному количеству дней. Вот код
     

    Код:
    @FORFILES /P C:\ /M *.xls /D -1 -C "CMD /C if @isdir==FALSE rar a %time% @File"

     
    Как его выразить в VBS??? Кто знает ???

    Всего записей: 1510 | Зарегистр. 03-03-2008 | Отправлено: 13:14 11-11-2008
    Taciturn

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Nagual
    Если DHCP не используется, то этот метод ничего не даст.

    Всего записей: 1976 | Зарегистр. 26-07-2003 | Отправлено: 17:28 11-11-2008
    uranic2

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

    Цитата:
    Мне нужно, чтобы батник искал в определённой папке файлы который содержат слово (например, Привет). После того как пройдёт поиск, все файлы содержащие это слово должны скопироваться в отдельную директорию.  

     
    могу предложить вариант на windows script host:
     
     

    Код:
     
    ' Codepage 1251
    ' -------------------------Конец изменяемой части --------------------------------
    On Error Resume Next
     
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    Dim oShell
    Set oShell = WScript.CreateObject ("WSCript.shell")
    Dim FolderForBack
     
     
    function FindInFile(AFILE)
      Set objFS = CreateObject("Scripting.FileSystemObject")
      Set objTS = objFS.OpenTextFile(AFileNameCompilerLog)
      strFileContents = objTS.ReadAll
      objTS.Close
      numWarning = 0
      Set objREHint = New RegExp
      objREHint.Global     = True
      objREHint.IgnoreCase = TRUE
      objREHint.Pattern    = "СТРОКА КОТОРУЮ ИЩЕМ"
      Set colMatches = objREHint.Execute(strFileContents)
      For Each objMatch In colMatches
        numWarning = numWarning +1
      Next
      FindInFile = numWarning
     
     
    end function
    ' *************************************************'
     
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
     
    WScript.Echo Now
     
     
     
    ' Выбираем все директории
    ' этот  селект срабатывает достаточно долго было бы хорошо его ускорить
    Set colFiles = objWMIService.ExecQuery _
        ("Select * from CIM_DataFile where FileName Like '%pas'")
     
    For Each objFile in colFiles
      Wscript.Echo objFile.Name
      if FindInFile(objFile.Name) then
        Wscript.Echo "** ЗДЕСЬ  ВСЕ ЧТО УГОДНО ****" & objFile.Name
      end if
         
    Next
     
     
    WScript.Echo Now
     
     
     
    ну и запуск скрипта
    cscript SCRIPT.vbs > rest.bat

    Всего записей: 297 | Зарегистр. 17-08-2004 | Отправлено: 17:46 11-11-2008
    batniki



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как вывести строки в файл на %AllUsersProfile%\Рабочий стол?
    пишу что-то типа:
    echo blabla>>%AllUsersProfile%\Рабочий стол\blabla.txt
    файл не появляется

    Всего записей: 50 | Зарегистр. 11-02-2008 | Отправлено: 20:44 11-11-2008
    Elroir



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

    Код:
    echo blabla>>"%AllUsersProfile%\Рабочий стол\blabla.txt"


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:57 11-11-2008
    Serg41

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Добрый день
    Подскажите люди добрые
    Есть задачка:
    нужно удалять файлики в одной папке, и во всех подпапках но не удалять сами подпапки, т.е. оставить только скелет папок и все

    Всего записей: 77 | Зарегистр. 18-09-2006 | Отправлено: 13:43 13-11-2008
    Drunken Master

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

    Код:
    cd /d folder_name
    del /s /q /f *.*

    Всего записей: 75 | Зарегистр. 11-12-2005 | Отправлено: 14:20 13-11-2008 | Исправлено: Drunken Master, 14:22 13-11-2008
    Serg41

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

    Цитата:
    cd /d folder_name
    del /s /q /f *.*  

     
    классно, спасибо большое

    Всего записей: 77 | Зарегистр. 18-09-2006 | Отправлено: 15:54 13-11-2008
    Ilyha58343

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Посдкажите пожалуйста, есть файл ChangeVLKey2600.vbs от майкрософта который меняет ключ на винде. Доменного админа нет, так что GP тут не пройдут, но на всех компах я админ (есть группа админов куда я вхожу) так вот, пытаюсь psexec выполнить скрипт таким образом  
    psexec.exe \\computername -u domen\user -p password cmd.exe /c \\server\key\lic\ChangeVLKey2600.vbs M8DDB-HDJW8-MG97W-XGX4J-7FYXG, скрипт проходит нормально, но в ответ консольпа стопорится и следующая команда не проходит. Подскажите в чем может быти проблема

    Всего записей: 306 | Зарегистр. 19-11-2005 | Отправлено: 09:24 14-11-2008 | Исправлено: Ilyha58343, 10:32 14-11-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    stydik
    что значит выразить в VBS?
    чем плох сценарий?
    а вообще тут и forfiles не нужен
    rar/?|findstr tn

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 15:13 14-11-2008
    AndySS

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

    Всего записей: 45 | Зарегистр. 30-03-2004 | Отправлено: 19:04 14-11-2008
       

    Страницы: 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-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru