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

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



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GiraffeFick 1 скрипт не сложный, можете сами написать, использовать команды for или forfiles и переименовать  команду ren. Или вы хотите, чтобы за вас всё сделали?
    2 скрипт  - смена иконок в 1 папке,  имхо,  невозможен, так как сменить иконку можно только у всех файлов с определенным расширением в системе, а не в конкретной папке.

    ----------
    В сортире лучше быть юзером, чем админом...

    Всего записей: 11968 | Зарегистр. 10-12-2003 | Отправлено: 08:21 17-11-2016
    Sanatory



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir, огромное спасибо!
    Всё работает
     
    Сказать, что я в восторге явно мало. Примите мои благодарность и уважение с низким поклоном.
     
    Несколько просьб:
    1. Заметил, что нормально обрабатывается содержимое файлов в кодировке windows-1251. В других кодировках отображаются "кракозябры". Можно ли переделать для UTF-8 ? Пробовал поменять строку  
    chcp 1251 > nul
    на  
    chcp 65001 > nul
    но содержимое вообще перестало вставляться между тегами <span>. В общем, прошу помочь и с этим.
     
    2. Я попробовал изменить скрипт, чтобы он создавал две колонки - с переменными %russianName% и  %englishName%, но отчего-то не получилось.  
     
     
    3. Плюс, если не сложно, прошу в колонке с датой создания файла с комментарием оставить только месяц, число и год - без времени (например, "05.02.2011" - без "21:23")
     
    Суммирую все пожелания: пожалуйста, сделайте так, чтобы на выходе получался следующий код (для файлов в кодировке UTF-8):
     

    Код:
     
    <tr>  
    <td>5</td>
    <td><a id="counter" href="#modal" rel="modal:open" onclick="DisplayFunction(this.id);return false;">И гаснет свет</a><span id="description">(текст файла)</span></td>  
    <td><a id="counter" href="#modal" rel="modal:open" onclick="DisplayFunction(this.id);return false;">Lights Out</a><span id="description">(текст файла)</span></td>
    <td>2016</td>
    <td>yyyy/mm/dd</td>
    </tr>  
     

     
    Заранее спасибо!

    Всего записей: 89 | Зарегистр. 21-04-2010 | Отправлено: 18:17 17-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть ещё небольшое дело!
     
    Например есть архивы запакованные 7z или rar  -неважно.Находятся архивы в папках .Каждый архив в своей папке
     
    Нужно с помощью батника вывести содержимое этих архивов ,находящихся в папках в текстовые файлы txt,и закинуть в каждую папку с архивом отдельно каждый текст файл
    ;содержимое в основном -это либо файл с расширением txt или dic,редко может попастся подпапка с такими же файлами
     
    Это нужно чтобы без распаковки можно было видеть какие файлы находятся в этих архивах
     
     
    Благодарю за помощь!!!

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

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Linksach
    ArchiveLister.cmd
    Код:
    @echo off
    set "ROOTFOLDER=x:\path to\RootFolder"
     
    1>nul 2>&1 7z --help ||call :ABORT "Недоступен 7z.exe!"  
    1>nul 2>&1 pushd "%ROOTFOLDER%" ||call :ABORT "Папка "%ROOTFOLDER%" не существует!"  
    for /f  "delims="  %%A in ('dir /B /A:D *') do call :PROCESSFOLDER "%%A"
    popd
    goto :EOF
     
    :ABORT
    echo Аварийное завершение работы!
    echo %~1
    pause
    exit  
     
    :PROCESSFOLDER
    pushd "%~1"
    for /f "delims=" %%B in ('dir /B /A:-D *') do 1>>"%%~nB.lst" 7z l "%%B"  
    popd
    goto :EOF


    ----------
    http://www.imho.ws

    Всего записей: 2644 | Зарегистр. 12-10-2006 | Отправлено: 23:21 17-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
     
    Благодарю-работает.  
     
    Создаются файлы lst с полной информацией!  
     
    Отлично и оперативно!  
     
    Единственное ,что в файле lst ,который создался по файлу txt -не выводится полная инфа раз на то пошло (про путь,тип,физ размер),а пишет что ошибок 1
     
    Вот пример
     
    http://hkar.ru/M9TG
     
    В других lst созданных по 7z ,zip,rar присутствует больше информации
     
    http://hkar.ru/M9Ui
     
    Может из-за того что txt -это не архив как например 7z
     
    Это моя вина-я не сообщил что есть папки не заархивированные,а с файлами с расширением txt,dic
     
    Не архивировал,потому что они имеют маленький размер
    Но думаю это для меня не страшно,главное что основная инфа в файле lst присутствует

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



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

    Код:
     
    @echo off
    setlocal
    pushd "%~dp0"
    chcp 65001 > nul
    set "counter=0"
    echo.>movies.html
    for %%a in (*.txt) do (
        echo Processing file "%%a"
        for /f "tokens=1* delims=(" %%b in ("%%~na") do (
            set "russianName=%%b"
            for /f "tokens=1* delims=," %%d in ("%%c") do (
                set "englishName=%%d"
                set "year=%%e"
                set "creationDate=%%~ta"
            )
        )
        call :write "%%~fa"
    )
    popd
    goto :EOF
     
    :write
    set /a "counter+=1"
    set "russianName=%russianName:~0,-1%"
    set "year=%year:~1,-1%"
    set "creationDate=%creationDate:~0,-6%"
    echo ^<tr^> >> movies.html
    echo ^<td^>5^</td^> >> movies.html
    echo ^<td^>^<a id="%counter%" href="#modal" rel="modal:open" onclick="DisplayFunction(this.id);return false;"^>%russianName%^</a^>^<span id="description"^> >> movies.html
    type "%~1%" >> movies.html
    echo ^</span^>^</td^> >> movies.html
    echo ^<td^>^<a id="%counter%" href="#modal" rel="modal:open" onclick="DisplayFunction(this.id);return false;"^>%englishName%^</a^>^<span id="description"^> >> movies.html
    type "%~1%" >> movies.html
    echo ^</span^>^</td^> >> movies.html
    echo ^<td^>%year%^</td^> >> movies.html
    echo ^<td^>^</td^> >> movies.html
    echo ^<td^>%creationDate%^</td^> >> movies.html
    echo ^</tr^> >> movies.html
     

     
    Не уверен, что будет работать корректно - с юникодом всегда морока.

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:21 18-11-2016
    bomzz

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

    Цитата:
    @echo off
    :pass
    ping 192.168.x.1 -n 1 > nul
    if not ErrorLevel 0 goto pass
    :pass1
    ping 192.168.x.y -n 1 > nul
    if not ErrorLevel 0 goto pass1
    start "" "C:\Program Files\AMMYY Admin\AA_v3.exe"

    ping 192.168.x.1 шлюз
    ping 192.168.x.y хост
    не получается сделать работающий батник. можно обойтись без скачивания контрольного файла? как однозначно проверить установление сетевого соединения?
     

    Цитата:
    if exist "\\bomz\K" start "" "C:\Program Files\AMMYY Admin\AA_v3.exe"

     

    Цитата:
    arp -a
     
    for /f "delims=" %%f in ('ipconfig /all') do echo %%f

    Всего записей: 3523 | Зарегистр. 29-03-2016 | Отправлено: 15:22 18-11-2016 | Исправлено: bomzz, 21:51 18-11-2016
    GiraffeFick

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ipmanyak А если как-то залезть в параметры файла через строку, изменить иконку и зациклить это для папки? Так можно?
    P.S. Первый написал, не понял, правда, зачем вы сказали про for и ren, если можно обойтись простым replace

    Всего записей: 3 | Зарегистр. 16-11-2016 | Отправлено: 23:22 18-11-2016 | Исправлено: GiraffeFick, 00:09 19-11-2016
    villa777



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Если кто может сделайте пожалуйста батник для автоматизации скачивания. Сейчас всё приходится делать вручную. Есть WinXP, и файл youtube-dl.exe. Хочется чтобы скопировав ссылку в буфер обмена и запустив батник, всё закачалось в указанную в батнике папку, например D:\0 с такой командой - youtube-dl.exe -Acit . Спасибо.

    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 13:55 19-11-2016
    Sanatory



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

    Всего записей: 89 | Зарегистр. 21-04-2010 | Отправлено: 14:08 19-11-2016
    bomzz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    villa777
    что за волшебная youtube-dl.exe? просто 4K Download не устраивает?
    для буфера обмена все равно дополнительные утилиты понадобятся, например мои из шапки  
     
    Добавлено:
    https://rg3.github.io/youtube-dl/download.html

    Всего записей: 3523 | Зарегистр. 29-03-2016 | Отправлено: 14:57 19-11-2016
    BorlandIMHO

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

    Цитата:
    Может из-за того что txt -это не архив как например 7z

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

    ----------
    http://www.imho.ws

    Всего записей: 2644 | Зарегистр. 12-10-2006 | Отправлено: 15:10 19-11-2016
    Linksach



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
     
    да нет,файлы только двух типов txt,dic

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

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

    Цитата:
    как однозначно проверить установление сетевого соединения?

    Обсуждалось в "убитой" 11-й части.
    Проще всего именно скачать файлик (и скачав сразу грохнуть, раз не нужен)...
    Вот тут несколько вариантов. Вплоть до проверки доступности smtp.gmail.com.

    ----------
    http://www.imho.ws

    Всего записей: 2644 | Зарегистр. 12-10-2006 | Отправлено: 15:34 19-11-2016
    bomzz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
    там задача чуть проще, проверяется не отвалилась ли сеть, а при запуске винды шлюз пингуется когда ему назначен адрес но он еще не работает. проверка файла работает на 100% но не очень удобно, дополнительное условие появляется, а если файл внешний то два

    Всего записей: 3523 | Зарегистр. 29-03-2016 | Отправлено: 15:43 19-11-2016 | Исправлено: bomzz, 15:44 19-11-2016
    BorlandIMHO

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

    Цитата:
    файлы только двух типов txt,dic

    И что вам от них нужно? Размер файла?
    Если размер - то операция бессмысленна. Любой файловый менеджер (FAR manager, Total commander, стандартный виндовый проводник и т.д.) покажет размер файла без каких-либо дополнительных телодвижений...
     
    Добавлено:
    bomzz
    Ну, если комп, с которым надо соединяться, в локалке - пинг шлюза, вообще говоря, не имеет смысла. Пингуйте сразу целевой комп...
    Проверку существования шары в локальной сети без скачивания с неё файла легко организовать при помощи pushd/popd:
    Код:
    pushd "\\server\share" && (popd & echo Шара доступна) || echo Шара недоступна



    ----------
    http://www.imho.ws

    Всего записей: 2644 | Зарегистр. 12-10-2006 | Отправлено: 15:46 19-11-2016
    villa777



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bomzz
    Видео скачать я могу любой приблудой, а мне надо аудио, например с ЯндексМузыка, 4kDownloader не качает, или? Волшебный файл youtube-dl.exe используется для WinXP. Хотелось бы просто автоматизировать всё это.
     

    Всего записей: 2773 | Зарегистр. 22-06-2011 | Отправлено: 17:56 19-11-2016
    bomzz

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

    Всего записей: 3523 | Зарегистр. 29-03-2016 | Отправлено: 19:24 19-11-2016
    bomzz

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BorlandIMHO
    пинг шлюза скорее задержку просто создает, шлюз пингуется с момент присвоения ему ИП, еще до того, как на реальном компе значок сетевого соединения появится, тоже самое и со вторым ИП получается. скорее корректность зависит от драйвера сетевого. потому что на разных сетевых устройствах разные результаты. пинг шлюза АММУУ тоже не помог - не сразу сообразил АММУУ без внешки не пашет
     
    но проблема так решилась - установка АММУУ как службы само корректно запускается

    Всего записей: 3523 | Зарегистр. 29-03-2016 | Отправлено: 14:52 20-11-2016 | Исправлено: bomzz, 14:53 20-11-2016
    ALEX173



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    помогите довести до ума  
    forfiles /P "G:\video" /S /D -31 /C "cmd /c del /f /a /q @file"
    но есть там файл(ы) .ddl который не нужно удалять.

    Всего записей: 51 | Зарегистр. 19-08-2012 | Отправлено: 15:08 20-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