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

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

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

    Цитата:
    Но батник не должен!!! использовать текст, содержащийся в xxx.bat

    А что он должен использовать для вывода, какой текст? Веришь-нет, до сих пор не понял, что ты от батника хочешь

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 16:18 06-03-2007
    NIKZZZZ



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

    Цитата:
    А что он должен использовать для вывода, какой текст?

    В нем не должно быть никаких упоминаний о файле xxx.bat, вывод должен использовать, например команды Echo, или что-нибудь еще.
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:05 06-03-2007
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    NIKZZZZ
    Я, как и igor_andreev...
     

    Цитата:
    до сих пор не понял, что ты от батника хочешь
       
     
    Опиши подробно суть задачи, а то как то расплывчато... выводить текст батником который не должен содержаться в батнике... хм... парадокс программирования... спрашивается - для чего сие надо?
     
    Добавлено:
    NIKZZZZ
     

    Цитата:
    В нем не должно быть никаких упоминаний о файле xxx.bat

     

    Код:
    Type %0


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 17:11 06-03-2007
    igor_andreev

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

    Цитата:
    В нем не должно быть никаких упоминаний о файле xxx.bat,

    TYPE %0
    Никаких упоминаний о xxx.bat, какой-то левый значок процента и ноль не в тему вааще.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 17:18 06-03-2007
    Maza Faka



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

    Цитата:
    Как можно в процедуре _delstr удалить строку под номером %VarName% из файла x.txt?

     
    Стандартными командами WinXP вряд ли, можно утилитой "munge" (входит в состав Windows NT Resource Kit)

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 17:21 06-03-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Я страницу не обновил, не видел, что ты уже ответил

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 17:21 06-03-2007
    NIKZZZZ



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

    Цитата:
    Никаких упоминаний о xxx.bat

    %0 - а разве это не открытое упоминание о xxx.bat? По моему , так и написано в руководстве ...

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 17:38 06-03-2007
    xSabir

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, а может кто подскажет, как из одного .txt в другой перегнать все строки,кроме
    определенной, номер которой указывается заранее?

    Всего записей: 4 | Зарегистр. 06-03-2007 | Отправлено: 17:54 06-03-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xSabir
    Можно sed, быстрее и менее муторно, чем стандартными средствами строчки считать.
     
    записать в файл new.txt все содержимое файла test.txt, кроме седьмой строчки
    more test.txt | sed 7d>new.txt
     
    Версия sed у меня старая ftp://ftp.simtel.net/pub/simtelnet/msdos/txtutl/sed15x.zip
    В sed от unixtools синтаксис местами другой.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 18:05 06-03-2007
    VICTOR2005



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

    Цитата:
    @echo off  
    ren *_windows.part*.rar windows.part*.rar  

    Неясно!
    ищо раз пример
    100_0001_windo1ws.part1.rar  
    100_0000_windo2ws.part2.rar  
    100_0500_windo3ws.part3.rar  
    100_0056_windo4ws.part4.rar  
    ---------------------------------  
    автомат на  
    windo1ws.part1.rar  
    windo2ws.part2.rar  
    windo3ws.part3.rar  
    windo4ws.part4.rar  
    готов.  
    ------------------  
    Как?  

    Всего записей: 20 | Зарегистр. 21-02-2005 | Отправлено: 18:21 06-03-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VICTOR2005
    почему бы не использовать тотал командер?
    выделяешь необходимые файлы, втыкаешь мастер переименования (Ctrl+M) и вводишь маску [N10-23], задача решается в мановение ока, при полной визуализации конечных файлов

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 18:23 06-03-2007 | Исправлено: Nagual, 18:30 06-03-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual
    тотал коммандер - это сторонняя утилита. Ты же сторонними не пользуешься?
    VICTOR2005

    Цитата:
    ищо раз пример  
    100_0001_windo1ws.part1.rar  
    100_0000_windo2ws.part2.rar  
    100_0500_windo3ws.part3.rar  
    100_0056_windo4ws.part4.rar  
    ---------------------------------  
    автомат на  
    windo1ws.part1.rar  
    windo2ws.part2.rar  
    windo3ws.part3.rar  
    windo4ws.part4.rar  
    готов.  
    ------------------  
    Как?  


    Код:

    @ECHO OFF
     
    FOR %%A IN (*_*_windo?ws.part*.rar) DO CALL :_RENAME %%A  
    PAUSE & GOTO :EOF
     
    :_RENAME
    FOR /F "TOKENS=3 DELIMS=_" %%A IN ('ECHO %~1') DO ECHO REN %1 %%A

     
     

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 18:49 06-03-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    чем чем, а тоталом я пользуюсь, это не стороняя, а родная, не утилита, а программа
    и, кстати тотал спокойно играет wav файлы, при том, что у меня не установлено в системе ни одного проигрывателя из перечисленных тобой и не перечисленных, ни windows media, ни Classic 6, ничего, даже звукозаписи нет...
    в тотале, кстати, тоже не установлено ни одного мультимедийного плагина, однако большинство файлов можно спокойно открыть универсальным плагином ieview
    почему ищу решения сценариями?
    для выполнения их на машинах пользователей, у которых как раз нет тотала и сторонних утилит, ну да ладно, все это оффтоп

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 19:05 06-03-2007
    Elroir



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

    Цитата:
    Неясно!

    Что именно неясно? Тебе было предложено четыре варианта решения. Первое (мое) ты просто проигнорировал, 2 следующих тебе неясны (ты их проверял?). Примеры у тебя меняются...  

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:11 06-03-2007
    igor_andreev

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

    Цитата:
    у меня не установлено в системе ни одного проигрывателя из перечисленных тобой и не перечисленных
    А я тебе пример на vbs написал с использованием mplay32.exe, не работает разве? Я запускал его на Win2000 без всяких установленных плееров. Mplay32.exe по умолчанию должна лежать в system32 любой NT-оси кажись, даже если Windows Media Player не установлен.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 19:12 06-03-2007
    Elroir



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

    Цитата:
    Ребят, а может кто подскажет, как из одного .txt в другой перегнать все строки,кроме  
    определенной, номер которой указывается заранее?

    Если в тексте нет спец. символов, то можно так:

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    set "fname=file.ext"
    set "newfname=newfile.ext"
    set "skip=10"
    set "current=1"
    del /q "%newfname%" 2>nul
    for /f "tokens=*" %%a in (%fname%) do (
    if not !current!==%skip% echo %%a>>"%newfname%"
    set /a "current+=1"
    )
     

    file.txt - исходный файл
    newfile.ext - файл, в который переписываются строки
    10 - строчка, которую надо пропустить

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:23 06-03-2007
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    дело том, у меня этого файла нет, а значит и у пользователя его тоже потенциально может не быть, стало быть вариант не универсальный, поэтому не годится, для общего развития может и пойдет, а для реального пользования я бы не стал применять, так что буду искать более универсальный вариант... спс за помощь

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 19:26 06-03-2007
    igor_andreev

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

    Цитата:
    дело том, у меня этого файла нет,
    Заглянул в свежеустановленную Windows 2000 без всяких обнов, из сторонних программ только WinRAR - в папке system32 лежит файл mplay32.exe. Заглянул в свежеустановленную XP, ну правда уже со всеми хотфиксами - в папке system32 тоже лежит файл mplay32.exe. Не знаю, почему у тебя его нет.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 19:48 06-03-2007
    xSabir

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Fakaigor_andreev
    спасибо за совет, но нужно средствами самого батника
     
    Elroir

    Цитата:
    10 - строчка, которую надо пропустить

    скажи пожалуйста, можно ли в твоем примере заменить 10 на какую нибудь переменную?
    самому сейчас нет возможности проверить на практике.

    Всего записей: 4 | Зарегистр. 06-03-2007 | Отправлено: 20:16 06-03-2007
    Elroir



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

    Цитата:
    скажи пожалуйста, можно ли в твоем примере заменить 10 на какую нибудь переменную?

    Я не верно написал. Там и есть переменная - "skip". 10 - это номер строчки, которую нужно пропустить. Вместо числа "10", можно поставить любое другое число.

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:23 06-03-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru