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

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

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

evle (19-03-2008 19:44): Лимит страниц.
Задачи на bat-файлах 5
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 15:21 11-09-2007 | Исправлено: Elroir, 01:52 26-02-2008
    SymA



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

    Код:
     
    cmdow @ /hid  
    rem Some code here
     

     
    создан ярлык, то при его запуске ничего не должно быть видно, так ?
     
    у меня всё равно открывается окошко, но тут же исчезает
    т.е. мы в любом случае увидим окно ?

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 23:01 22-01-2008 | Исправлено: SymA, 23:42 22-01-2008
    Elisaveta

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые пользователи!
    Нужно решение такой задачи:"подсчитать количество файлов определённого типа ну указаном диске"(Вообщем первым делом вывести список существующих дисков и возможность выбора одного из них.Второе ввод типа файлов которые будем искать,тоесть с клавиатуры вводим например "txt" или "doc" или любой другой набор).
    Заранее благодарна

    Всего записей: 5 | Зарегистр. 12-11-2007 | Отправлено: 23:19 22-01-2008
    Grim_Repo



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте, подскажите пожалуйста батник для удаления всех файлов заданных разрешений, в любом месте (включая скрытые и системные папки), без помещения в корзину?
    Например:
    На диске С: имеются каталоги 1, 22, 098, а внутри нах находятся файлы с разрешением *.xxx и *.yyy но помимо этих файлов в каталогах 1, 22, 098 есть каталоги 2, 33, 099 внутри которых лежат файлы *.xxx и *.yyy, а также в этих каталогах есть другие каталоги и т.д. P.S. Окошка не должно быть видно. И возможно ли сделать так чтобы он проделывал эту операцию по всем установленным в копьютере носителям данных?
     
    P.P.S.
    И подскажите, пожалуйста, хороший учебник по написанию bat'ников.
     
    Добавлено:
    И подскажите, будут ли работать такие батники:

    Код:
    ping xxx.xxx.xxx.xxx. -t


    Код:
    copy /y source font.ttf + source font2.ttf destination c:/windows/fonts

    Подскажите как заставить закрыться батник после завершения операции... (для 2 варианта)
     
     
    Заранее, огромное спасибо!

    Всего записей: 397 | Зарегистр. 02-05-2006 | Отправлено: 23:42 22-01-2008 | Исправлено: Grim_Repo, 00:45 23-01-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SymA
    Для ярлыка лучше cmdow /run /hid some.cmd
     
    Elisaveta
    На сколько точно не проверял
    Вводить только букву и расширение без точки

    Код:
     
    @echo off
    setlocal
    fsutil fsinfo drives
    set /p disk="Only Letter: "
    set /p ext="Extension without dot: "
    for /f "tokens=*" %%i in ('dir /b /s /a-d "%disk%:\*.%ext%"') do set /a count+=1
    echo %count% %ext%-files
     

     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 01:40 23-01-2008
    PuzzleW

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SymA - когда у меня встала такая задача - я обошёлся следующим образом (про cmdow узнал только что из гугла)
     
    ----------------file.vbs-----------
    sPath = "D:\\Work"
    sCmd = "subst W: " & sPath  
    Set WshShell = Wscript.CreateObject("WScript.Shell")  
    WshShell.Run sCmd, 0, true  
    --------------/file.vbs------------
     
     
    А ярлык соответственно:
    на это vbs файл (он открываеться на обработку wscript.exe - не вызывая окошек)
    отлаживать из командной строки лучше с использованиям cscript.exe file.vbs
     
    Grim_Repo
    ping xxx.xxx.xxx.xxx -t работает  в батнике на ура
    более того время ping localhost очень приблизительно равно 4 секундам.
     
    copy /y source font.ttf + source font2.ttf destination c:/windows/fonts  
    _______^^^^________^^^^^_______^^^^^^^______________
    лишние блоки и ты потерял название файла в который "сольються" твои font.ttf и font2.ttf
     
    выход - exit

    Всего записей: 185 | Зарегистр. 19-12-2005 | Отправлено: 04:02 23-01-2008
    Dekabryi



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

    Всего записей: 44 | Зарегистр. 29-05-2006 | Отправлено: 08:55 23-01-2008
    01MDM



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

    Код:
     
    @echo off
    setlocal
    for /f %%i in (list.txt) do call:_ping %%i
    goto:eof
    :_ping
    for /f "tokens=2 delims=[]" %%i in ('ping %1 ^| findstr %1') do (
        echo %1 %%i 1>>list_after.txt && set flag=1
    )
    if not defined flag echo %1 is dead 1>>list_after.txt
    set flag=
     

    Если будут ошибки приведи пример списка компьютеров

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:39 23-01-2008 | Исправлено: 01MDM, 10:45 23-01-2008
    Dekabryi



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    01MDM
    Супер решения сенкс  
     
    Вот Альтернативный способ от SE111
     
    FOR      /F "eol=; tokens=1" %%i in (1.txt) do ping -n 1 %%i | find "TTL=" && echo %%i >> c:\temp\pinguetsya.txt
     
     
    В файл пишутся живые хосты
     

    Всего записей: 44 | Зарегистр. 29-05-2006 | Отправлено: 12:15 23-01-2008 | Исправлено: Dekabryi, 13:29 23-01-2008
    Grim_Repo



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2PuzzleW Спасибо за совет! Подскажите, а вот так будет правильно?
    copy /y font.ttf + font2.ttf c:/windows/fonts/ exit
    _____________^^__________________________ - Эти пробелы не нужны?
     

    Цитата:
    ты потерял название файла в который "сольються" твои font.ttf и font2.ttf

    Всмысле?

    Всего записей: 397 | Зарегистр. 02-05-2006 | Отправлено: 12:37 23-01-2008 | Исправлено: Grim_Repo, 12:43 23-01-2008
    OOD

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    помогите написать батник, который будет копировать файлы из папки ./ на сетевую шару //comp/shara в цикле по маске файлов текущая_дата.*  
     

    Всего записей: 3378 | Зарегистр. 20-05-2006 | Отправлено: 15:05 23-01-2008
    PuzzleW

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Grim_Repo
    если твоя задача скопировать "встык" два файла шрифта и поместить результат в третий файл, то правильныйм будет вот такой код

    Код:
     
    copy /b file.ttf+file2.ttf c:\windows\fonts\font3.ttf
     

    пробелы между параметрами:
    после copy, после /b, после file2.ttf
    font3.ttf не должен существовать
    а file.ttf и file2.ttf - должны
    Аккуратно елси ты оперируешь файлами лежащими в прапк c:\windows\fonts\ !
    потому что если ты попытаешься сохранить file1+file2 а file1 - у тебя может ничего не получиться. надо будет file1+file2 в tmpfile, потом del file1 и ren tmpfile file1  

     
    Добавлено:
    Dekabryi
     
    а у тебя фаер везде выключен/ICMP разрешён?  
    правильнее тогда уже живость записи а arp-таблице проверять, но это немного сложнее

    Всего записей: 185 | Зарегистр. 19-12-2005 | Отправлено: 16:22 23-01-2008 | Исправлено: PuzzleW, 16:25 23-01-2008
    lastduke

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    товарищи, помогите решить такую задачу - есть папка, в которую падает файл, например с:\temp\file_ddmmyy.xls (имя файла меняется каждый день)
     
    Требуется создать второй файл, который будет содержать имя первого файла и через пробел еще одно слово, которое будет вписываться через %2. например file_ddmmyy.xls word
     
    вот думал так дожно работать, но нет ) наверное где-то недопонял.
    подскажите как оно должно быть.
     
    set PATH=c:\temp
    echo %~nx$PATH:1  %2>с:\temp\file2.txt
     
     
    заранее благодарю.

    Всего записей: 4 | Зарегистр. 23-01-2008 | Отправлено: 18:20 23-01-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lastduke
     
    Я так понимаю, что в с:\temp\ находится один единственный файл`file_ddmmyy.xls`, если нет, то по каким критериям его искать?
     
    set folder=с:\temp
    for %%e in ("%folder%\*") do echo %%~nxe word> с:\temp\file2.txt

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 19:04 23-01-2008
    lastduke

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

    Цитата:
    Я так понимаю, что в с:\temp\ находится один единственный файл`file_ddmmyy.xls`

     

    Цитата:
    king_stiven
    , в с:\temp будет 1 файл в виде file_??????.xls
     
    да, приведенный Вами пример ничего не пишет в file2.txt.
     
     

    Всего записей: 4 | Зарегистр. 23-01-2008 | Отправлено: 19:27 23-01-2008
    Grim_Repo



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2PuzzleW
    Получается, что этот батник:
    copy /b file.ttf+file2.ttf c:\windows\fonts\font3.ttf
    склеит два шрифта в 1? А использовать эти 2 шрифта будет не возможно?
    Вообщем, ситуация такова - на компакт диске в папке "Шрифты" лежат 2 шрифта Font1.ttf и Font2.ttf. Нужен батник (батник будет находится в одной папке со шрифтами), который копирует эти два шрифта в папку c:\windows\fonts и автоматически (без вмешательства пользователя) закрывается. Вот.
     
    P.S.
    А этот батник будет работать:
    Код:
    copy /y file.ttf c:\windows\fonts\font1.ttf
    copy /y file2.ttf c:\windows\fonts\font2.ttf
    exit /b
    ? /y это для автоматического подтверждения замены если в папке c:\windows\fonts уже есть файлы с такими именами, так?
     
    P.P.S.
    Скажите, а нельзя просто копировать файл в дерикторию -
    Код:
    copy /y file2.ttf c:\windows\fonts\
    ?
     
     
    Заранее, огромное спасибо!

    Всего записей: 397 | Зарегистр. 02-05-2006 | Отправлено: 19:48 23-01-2008 | Исправлено: Grim_Repo, 20:02 23-01-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    Не совсем понятен вопрос. Копировать файлы, которые созданы сегодня? Или у которых в названии текущая дата?
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:52 23-01-2008
    lastduke

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

    Цитата:
    Не совсем понятен вопрос. Копировать файлы, которые созданы сегодня? Или у которых в названии текущая дата?  

     
    простите, к кому этот вопрос?
     
    АП. сорри за глупый вопрос. не заметил

    Всего записей: 4 | Зарегистр. 23-01-2008 | Отправлено: 19:58 23-01-2008 | Исправлено: lastduke, 20:10 23-01-2008
    01MDM



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

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:02 23-01-2008
    Grim_Repo



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    201MDM
    На этом компе мне запрещены всякие опыты . А что может, и вправду, сработать мой скрипт?
     
    P.S.
    Подскажите, какой ip адрес лучше всего пинговать ну типа может мелкософта сервак или еще какой то наиболее подходящий для этих целей?
     
    Подскажите, а что дает параметр -c ? Судя по справке мелких он выводит сообщение, только не понятно где?
     
    Пример:
    Код:
    shutdown -f -c "the time is now"
    Я вот не пойму, а где надо и где не надо вставлять в начале батника
    Код:
    @echo off  
    chcp 1251 > nul
    и что это дает?
     
    Скажите, а такой батник сработает:
    Код:
    shutdown -f -c "the time is now" exit /b
    ?
     
    И последний вопрос - какой надо батник написать чтобы он удалял например файлы *.tmp и *.bak из папки XYZ.

    Всего записей: 397 | Зарегистр. 02-05-2006 | Отправлено: 20:13 23-01-2008 | Исправлено: Grim_Repo, 20:42 23-01-2008
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    lastduke
     
    У меня работает, винда xp pro русская
     
    Обычные ошибки:
     
    1 Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!  
     
    2 В начале батника автоматом вставляй
     
    @echo off  
    chcp 1251 > nul

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 20:26 23-01-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 101 102 103

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 4
    evle (19-03-2008 19:44): Лимит страниц.
    Задачи на bat-файлах 5


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru