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

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

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

KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hErAx

Редактировать | Цитировать | Сообщить модератору
Задачи на bat-файлах 12
Предыдущие части: (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

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

  • Отправлено: 01:53 25-10-2015 | Исправлено: Paromshick, 21:51 18-12-2017
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_two
    Если можно киньте ссылку на GnuWin32 с gsort.Почему то попадается с sort
    Что-то не пойму как запускать этот код-как батник (с расширением bat?)

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 19:45 31-10-2016 | Исправлено: Linksach, 19:55 31-10-2016
    YuS_two



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

    Цитата:
    Почему то попадается с sort

    это он и есть, только переименован, т.к. в windows свой sort присутствует, но с ужасной сортировкой цифр

    Цитата:
    с расширением bat?

    Конечно. Согласно тематике этого топика.
    В принципе, можно упростить до одной строки:

    Код:
    sed -r "s/^(.*)\s(стр\b.*)(\..*$)/\2 \1\3/ig" test.txt|>test_sort.txt  gsort -n -k 2

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 20:06 31-10-2016 | Исправлено: YuS_two, 20:17 31-10-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_two
    Смотрите что я делал:
    http://uploads.ru/klJ4C.jpg
    вот что установил на диск с:
    http://uploads.ru/XmLEI.jpg
    http://uploads.ru/mHN8o.jpg
    http://uploads.ru/sfNti.jpg
    В переменную среды добавил  
    C:\GetGnuWin32\bin\sort-7.6
    Затем запускал как видно по первому скриншоту
    Что я делаю не правильно?
    проделывал в windows 7

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 20:46 31-10-2016 | Исправлено: Linksach, 20:48 31-10-2016
    YuS_two



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

    Цитата:
    Смотрите что я делал

    На этом сайте я не вижу картинок...
     

    Цитата:
    C:\GetGnuWin32\bin\sort-7.6

    Можно и его. Только в список переменных среды добавлять надо "C:\GetGnuWin32\bin".
    Так, стоп... это же установочный пакет... его необходимо инсталлировать. Либо взять готовую утилиту и положить по какому-нибудь пути из переменной PATH, но лучше проинсталлировать, там много вкусностей, пригодятся.
     

    Цитата:
    Что я делаю не правильно?  

    Для этого необходимо увидеть результат... попробуйте другой хостинг, например, rghost.ru

    Всего записей: 399 | Зарегистр. 28-03-2016 | Отправлено: 09:00 01-11-2016 | Исправлено: YuS_two, 09:08 01-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_two
    Привожу по списку из поста выше с другого хостинга
    http://rgho.st/8tgVqjBQT
    http://rgho.st/72bcBY69L
    http://rgho.st/8YYZjrDWq
    http://rgho.st/7HQQG9pZq
    Я всё проинсталировал на диск C,скачивал отсюда https://sourceforge.net/projects/getgnuwin32/
    Изменил переменную среды на C:\GetGnuWin32\bin,запустил через командную строку вот этот код:
    sed -r "s/^(.*)\s(стр\b.*)(\..*$)/\2 \1\3/ig" test.txt|>test_sort.txt  gsort -n -k 2
    но после всего этого результат оказался прежний и папка test_sort.txt получается пустой
    Файл test.txt лежит в папке 111,оттуда запускал и код.Результат:
    http://rgho.st/6YGwq8THb

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 15:21 01-11-2016 | Исправлено: Linksach, 15:42 01-11-2016
    YuS_2



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

    Цитата:
    Я всё проинсталировал на диск C

    Судя по картинкам, это всё же дистрибутив (вернее онлайн-установщик), с помощью которого устанавливаются программы из пакета. И там из инета ещё выкачивается 200 Mb с лишним, а в развернутом виде будет где-то около 400 Mb

    Цитата:
    Изменил переменную среды на C:\GetGnuWin32\bin

    Если всё правильно устанавливать, то установщик должен сам прописать необходимый путь.
    В общем, устанавливается всё в конечный каталог "GnuWin32"...
     
    Если надо по-быстрому, то могу предложить вот такой набор, где всё работает так, как нужно...
    Отпишитесь, что получилось

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 22:42 01-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ваш набор работает на отлично.С установкой пакета ещё буду разбираться .А почему такие различия в названиях программ.У меня  файлы sed,sort а у вас gsed,gsort.А через sed и sort будет работать батник.Просто у меня установился на диск с sed и через него работает(перемещает нужный текст)в начало,только сортировку не производит.

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 08:09 02-11-2016 | Исправлено: Linksach, 08:15 02-11-2016
    YuS_2



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

    Цитата:
    У меня  файлы sed,sort а у вас gsed,gsort

    Специально переименованы, во избежание конфликтов...  
    Имя файла большого значения не имеет, но если в системе есть утилита с аналогичным именем, то может возникнуть непредсказуемая коллизия.
     
    Добавлено:

    Цитата:
    С установкой пакета ещё буду разбираться .

    Кстати, мне тут подсказали, что лучше воспользоваться CygWin, т.к. GnuWin32 давно не развивается.

    ----------
    scio me nihil scire

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 08:28 02-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    Тут мне ещё вот надо будет с помощью батника добавлять файлы и папки в текстовый документ.Нашёл такие батники:
    Этот добавляет файлы:
    chcp 1251
     dir /a:-d /b > test.txt
     
    А этот папки:
    chcp 1251
    dir /b /a:d > test.txt
     
    Нужно их как-то объединить в один батник,чтоб добавлялось и то и то сразу
    В Totall Comander понятно,но лучше с помощью батника-быстрее

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 09:00 02-11-2016 | Исправлено: Linksach, 09:01 02-11-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Linksach
    Ну, самое очевидное - просто объединить эти батники:
    Цитата:
    chcp 1251
    dir /a:-d /b >test.txt
    dir /b /a:d >>test.txt  

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 09:11 02-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Благодарю!
    В созданном списке test.txt создаётся два ненужный названия,их надо удалить
    В моём случае это -Создание txt со списком папок и файлов.bat и test.txt

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 11:09 02-11-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Linksach
    Очевидное решение - батник и текстовый файл держать в папке на уровень выше, и поменять дир примерно так:
    Цитата:
    dir /a:-d /b "%~dp0MyDir">test.txt
    dir /b /a:d "%~dp0MyDir">>test.txt
    где MyDir - имя папки с папками и файлами

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 11:13 02-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    как можно текстовый файл держать на уровень выше в папке с батником если он ещё не создался .Одноимённое название текстового файла создаётся только при создании этого текстового документа

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 11:30 02-11-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Linksach
    Как-то так:
    Цитата:
    dir /b /a:d "%~dp0MyDir">>"%~dp0test.txt"

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 11:36 02-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ
    Не знаю почему но текстовый документ test.txt в папке (MyDir с батником)  код что выше создаётся пустым
    может батник не видит папки и файлы

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 11:42 02-11-2016 | Исправлено: Linksach, 11:47 02-11-2016
    VitaminP



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

    Код:
    chcp 1251  
     dir /a /b >test.txt

    Всего записей: 306 | Зарегистр. 28-08-2013 | Отправлено: 11:50 02-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VitaminP
    опять же в создавшемся текстовом файле имеются название батника который я запускаю и название текстового файла что создался.
    Вот http://rgho.st/8xmTf5pqj и вот http://rgho.st/6Bt4Dn9kq
    Это конечно не критично ...но хотелось бы чтоб они не присутствовали там

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 11:57 02-11-2016 | Исправлено: Linksach, 12:09 02-11-2016
    NIKZZZZ



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

    Цитата:
    .Это конечно не критично ...но хотелось бы чтоб они не присутствовали там


    Код:
    dir /b  | find /v /i "test.txt"  | find /v /i "%~nx0" > test.txt
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 12:08 02-11-2016 | Исправлено: NIKZZZZ, 12:10 02-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    здесь получше.Название текстового файла  в созданном списке test.txt отсутствует.Зато название запускаемого батника присутствует.И нужно в начале батника указать chcp 1251 иначе русский текст делается не читабельным
     
     
     
    Добавлено:
    NIKZZZZ
    Прошу прощения -всё нормально ,это я не доглядел -просто я не удалил предыдущий батник
    Всё работает как надо.Большое спасибо вам и всем кто помагал!!!!

    Всего записей: 113 | Зарегистр. 11-07-2015 | Отправлено: 12:16 02-11-2016 | Исправлено: Linksach, 12:33 02-11-2016
    Okapulka

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

    Исходный файл в кодировке ANSI (cp 1251).
     
    Я нашла такой батник:
    Код:
    @echo off
    chcp 1251
    SETLOCAL EnableDelayedExpansion
     
    set SRC=file.txt
    set DST=out_#.txt
    set DLM=-----
     
    for /f "usebackq delims=" %%i In ("%SRC%") do (
    if not defined $F (
      set /a $N+=1& set $F=F
      set "$O=%DST:#=!$N!%"
      type nul >"!$O!")  
    if not "%%i"=="%DLM%" echo %%i>>"!$O!"
    if "%%i"=="%DLM%" set $F=)

    Но во-первых не знаю как задать вместо "-----" своё условие, а во-вторых он удаляет пустые строки, чего делать нельзя в моём случае. И ещё мне показалось, что работает медленно, правда может потому, что я ему большой файл скормила.

    Всего записей: 171 | Зарегистр. 14-05-2016 | Отправлено: 16:58 07-11-2016 | Исправлено: Okapulka, 17:03 07-11-2016
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 12
    KLASS (06-03-2018 00:44): Объединение тем по сценариям: Сценарии Windows


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru