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

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

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как с помощью батника отчистить CD-RW диск находящийся в приводе?

    Всего записей: 3378 | Зарегистр. 20-05-2006 | Отправлено: 14:04 05-12-2007
    kotLeon

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Спасибо за помощь очень пригодилась такая проверка.
    Благодарствую!!!

    Всего записей: 6 | Зарегистр. 03-12-2007 | Отправлено: 14:47 05-12-2007
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    С помощью NeroCmd.exe, буква дисковода K:
     
    if exist "%drivename%\*.*" -если диск с записью
    --disable_eject - не выдвигать лоток
     

    Код:
    set drivename=K:
    if exist "%drivename%\*.*" NeroCmd.exe --erase --drivename %drivename%  --disable_eject --no_error_log

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 15:18 05-12-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    OOD
    Или с помощью cdburn.exe

    Код:
     
    cdburn DriveLetter: -erase
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:25 05-12-2007
    crazy_dead

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет.
    Подскажите, пожалуйста, как можно батником копирнуть  лежащий где-либо файл во все подкаталоги данного каталога.
     
    Пример:
     
    Есть файл: d:\faylo\file.txt,
    есть каталог "c:\percy",
     
    а вот че в нем:
     
    c:\percy\chuvak
    c:\percy\parnyaga
    c:\percy\kent
     
    Заранее спасибо.

    Всего записей: 22 | Зарегистр. 29-09-2005 | Отправлено: 16:21 05-12-2007 | Исправлено: crazy_dead, 17:07 05-12-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    crazy_dead
    Приведи пример строки. Тогда подправим.
    Если пустые строки и знаки табуляции не важны, то

    Код:
     
    @echo off
     
    set "oldStr=Старая строка, та что надо заменить"
    set "newStr=Новая строка, та на которую надо заменить старую"
     
    for /f "tokens=*" %%i in (old.file) do (
        echo "%oldstr%" | findstr /c:"%%i" 1>nul 2>&1 && echo %newStr%>>new.file || echo %%i >>new.file
    )
    move new.file old.file
     

     
    Так же можно воспользоватья gsar.exe

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:09 05-12-2007
    crazy_dead

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Прошу прощения. Задачка поменялась, т.к. нужно было подправить файл настройки, но, как оказалось, есть др. файл настр, имеющий больший приоритет. Поэтому нужно просто его раскидать по всем юзерам винды. Если быть точнее то мне нужно проверить какие юзеры ваще есть и им кинуть этот файл, т.е. нужно:
    - вывести список папок в Doc & set;
    - проверить наличие в каждой из них подпапки с конкретным названием;
    - при положительном результате предыдущего пункта копирнуть файл.

    Всего записей: 22 | Зарегистр. 29-09-2005 | Отправлено: 17:24 05-12-2007
    AFedorov

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ погите плз!
    Несложная задача но не могу сообразить ((
     Наваял батничек для рассылке нужных файлов по нужным адресам с помощью проги sendmail. Всё хорошо, всё работает но есть вопрос - письма делаются по шаблону - это обычный текстовый файл , где можно вставить и сабж и адрес и тело письма. Нужно в батничке наваять команды чтоб формировало этот файлик (например типа
    @set outputfile=templ.txt
    echo Отчёт за ХХХХ  число > %outputfile%), где ХХХХ - чтоб проставлялась текущая дата.. Как можно её туда вставить?? и как можно таким макаром вставить в файл пустую строку???  

    Всего записей: 15 | Зарегистр. 19-02-2007 | Отправлено: 17:34 05-12-2007
    king_stiven

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

    Цитата:
    Как можно её туда вставить??

     
    echo Отчёт за %date%  число > %outputfile%
     

    Цитата:
    как можно таким макаром вставить в файл пустую строку???  

     
    echo.> %outputfile%

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 17:44 05-12-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AFedorov
    test.cmd
    Код:
    @echo off
    chcp 1251>nul
    set outputfile=templ.txt
    for /f "tokens=1-6 delims=:., " %%a in ("%date% %time:~0,8%") do (
    echo>>%outputfile% Отчёт за [%%c.%%b.%%a_%%d.%%e.%%f]
    echo.>>%outputfile%)

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 18:24 05-12-2007
    01MDM



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

    Код:
     
    @echo off
    set "file=file.cfg"
    set "folder=folderName"
     
    for /f "tokens=*" %%i in ('dir /b /a:d "C:\Documents and Settings"') do (
        dir "C:\Documents and Settings\%%i\%folder%" >nul 2>nul && copy %file% "C:\Documents and Settings\%%i\%folder%")
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:25 05-12-2007
    SapSat

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа!
     
    Нужна помощь - или хотя-бы идея -  
     
    надо батником сгенерить файд на 1000 строк.
    Строка типа
     
    textA_textB_textC_1
     
    где 1 - число от 1 до 1000.
    (текст одинаковый, разница только в числе).
    Засада в том, что эти числа должны идти в случайном порядке.
     
    Как вариант - можно легко сгенерить файл с упорядоченным набором строк.
    Но как потом эти строки перетасовать?
     
    ?

    Всего записей: 32 | Зарегистр. 27-11-2007 | Отправлено: 09:00 06-12-2007
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SapSat
    переменная %random% раскроется в случайное число до 5 знаков, отсюда и плясать

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:13 06-12-2007
    SapSat

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
     
    Не понял???
     
    Мне надо, чтобы были представлены все числа от 1 до 1000, но в случайном порядке, а %random% будут давать случайные цифры - возможны повторы, возможны пропуски...
     
    Или я чего-то не понял?
     
    Или это была идея использовать %random% при сортировке уже имеющегося последовательного набора строк?
     
    Тогда - как реализовать эту перетасовку?
     
    ?

    Всего записей: 32 | Зарегистр. 27-11-2007 | Отправлено: 09:59 06-12-2007
    Dark Tiger



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Доброго всем коннекта уважаемые читатели этого форума!
    Встала передо мной такая вот проблема, в одном из офисов имеется местный провайдер интернета, подключение к которому осуществляется через VPN соединение. Непонятно от чего, но проблема точно не в наших компьютерах, это самое VPN соединение само по себе иногда отваливается, при чём абсолютно непонятно при каких обстоятельствах, может и неделю комп круглосуточно работать и всё гуд, а может и через 2-3 часа переодически отваливаться. Ну да ладно, вообщем у меня такая просьба к мастерам по написанию скриптов:
    Нужно сделать так что бы осуществлялась проверка VPN соединения (ну или хотя бы пинг например до ya.ru), например переодически раз в 30 минут, и если выявлялось бы что оно выключено, то запускалось бы автоматически, без каких либо вмешательств пользователя.
    Заранее спасибо.

    Всего записей: 101 | Зарегистр. 12-12-2005 | Отправлено: 11:29 06-12-2007
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SapSat
     
    @echo off
    setlocal enabledelayedexpansion
     
    echo creation 2>tmplist1.txt  
    for /l %%a in (1,1,1000) do echo !random! %%a >>tmplist1.txt
     
    echo sorting 2>tmplist2.txt  
    for /f "tokens=1,2*" %%a in ('sort tmplist1.txt') do echo  textA_textB_textC_%%b>>tmplist2.txt
     
    если сообщения мешаются - впиши свои варианты молчаливого удаления.

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 11:41 06-12-2007 | Исправлено: wolf0425, 11:50 06-12-2007
    othy

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, как просканировать папку, в которой файлы могут иметь несколько расширений(типа filename.ext1.ext2.ext3), сравнивая два последних расширения, если они одинаковые, то переименовать файл, отбросив последнее расширение.

    Всего записей: 62 | Зарегистр. 28-11-2005 | Отправлено: 12:37 06-12-2007
    SapSat

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
     
    Просто. Гениально. Работает...
     
    10x!!!
     
    Вопрос:
     
    а что это и для чего это:

    Код:
     
    2>tmplist1.txt
     

     
    ?

    Всего записей: 32 | Зарегистр. 27-11-2007 | Отправлено: 13:11 06-12-2007 | Исправлено: SapSat, 13:24 06-12-2007
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    othy  
     подсказка
     
    set file3=filename.ext1.ext2.ext3
    :begin
    for /f "delims=. tokens=1,2*" %%e in ("%file3%")  do (
      if not "%%f"=="" (
        set file1=%%e
        set file2=%%f
        set file3=%%f.%%g
        goto begin
      )
    )
    echo %file1%
    echo %file2%
    pause

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 13:46 06-12-2007
    Andre3000

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я создал новую тему, но все же решил и сюда тоже написать:
     
    В настройках языков в панели инструментов во вкладке дополнительно есть опция выбора языка программ не поддерживающих юникод.
    Вопрос состоит вот в чем:
    у меня есть обучающая программа 99-го года на диске (сделана в программке от макромедии по-моему). Вот, когда запускаю экзешник она вылетает, если в той самой вкладке не стоит язык Английский (США). А если я выбираю английский то остальные русскоязычные программы все с закорючками.
    Хотелось бы создать бат файл или файл реестра, при запуске которого в этих настройках автоматически прописывается английский. А при закрытии еще для отката или возврата в русский язык.
    У меня есть какие-нибудь шансы?))
     
    P.S. может кодировку самой программы можно поменять на юникод как-то?

    Всего записей: 11 | Зарегистр. 06-04-2007 | Отправлено: 13:50 06-12-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 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