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

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



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

    Код:
    cmd.exe /c  prog.bat


    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 02:51 29-05-2016
    42243

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

    Цитата:
    Создать ярлык для
     
    Код:
    cmd.exe /c  prog.bat  

    Спасибо получилось, но не так как хотелось бы.
    Если создаю ярлык для бат файла, и в нем пишу C:\Windows\System32\cmd.exe /C "D:\444.bat" то cmd.exe не запускается горячими клавишами.
    А если для C:\Windows\System32\cmd.exe отправить - рабочий стол - создать ярлык, и в его свойствах пишу C:\Windows\System32\cmd.exe /C "D:\444.bat", то получается. Но ярлык хотелось бы убрать с рабочего стола. Если его переношу, то перестает запускаться. Причем если его вернуть на рабочий стол все равно не запускается.
     
    Выходит если двух в ярлыках одинаковые пути, но один создан для cmd.exe запускающего программу, другой для программы запускающейся через cmd.exe, то ярлыки чем то отличаются. Один запускается горячими клавишами, другой нет.

    Всего записей: 28 | Зарегистр. 17-08-2008 | Отправлено: 15:11 29-05-2016 | Исправлено: 42243, 15:23 29-05-2016
    nik4z



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

    Цитата:
    Но ярлык хотелось бы убрать с рабочего стола.

    Можно просто присвоить ярлыку атрибут "скрытый", и он не будет виден.
     
     
    Добавлено:

    Цитата:
    Причем если его вернуть на рабочий стол все равно не запускается.  

    А после перезагрузки?

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 16:54 29-05-2016
    42243

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

    Цитата:
    Можно просто присвоить ярлыку атрибут "скрытый", и он не будет виден

    Это идея, так и сделаю.

    Цитата:
    А после перезагрузки?  

    Думаю даже проверять нет смысла, не сработает. И мне этот ярлык на рабочем столе не нужен.
     
    Ярлык оказывается скрыть не так просто, но способ есть

    Всего записей: 28 | Зарегистр. 17-08-2008 | Отправлено: 22:12 29-05-2016 | Исправлено: 42243, 22:28 29-05-2016
    ArabiQ

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не могу понять в чем дело.
    Создал cmd файл для переименования файлов:
     
    ren "c:\2\Счётчик Мыслей - Кислород.mp3" "001. Счётчик Мыслей - Кислород.mp3"
    ren "c:\2\Сансара - Боуи.mp3" "002. Сансара - Боуи.mp3"
    ren "c:\2\Кульбит Joe - Заклинательная.mp3" "003. Кульбит Joe - Заклинательная.mp3"
     
    и т.д.  
     
    Выдает ошибку:
    Не удается найти указанный файл.
    Я же копировал название через комманду:  dir > file.cmd
    а потом просто поправил его внутри.
     
    Ковычки тоже поставил.
     
    Что еще может быть?

    Всего записей: 15 | Зарегистр. 14-03-2013 | Отправлено: 18:01 01-06-2016
    Nuke142



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Привет!
    Как выводить лог в файл, не с результатом, а с введенным параметром?
     
     
    Пример:
    echo Date: %date:~0,2%-%date:~3,2%-%date:~6,4%   Time: %time%>>log.txt
    wget -O - "http://ссылка">>log.txt
     
    Я получаю файл log.txt, в котором отображается ответ сайта.
    Вместо этого, как мне вывести в файл лог самой команды (wget -O - "http://ссылка") ?
     
    Т.е. нужно знать, какой был запрос от пользователя.
     
    Спасибо.

    Всего записей: 302 | Зарегистр. 03-04-2008 | Отправлено: 18:02 01-06-2016 | Исправлено: Nuke142, 18:04 01-06-2016
    nik4z



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

    Цитата:
    Что еще может быть?

    Проблема с кодировкой, она должна быть OEM , возможно редактор ее изменил.
     
    Nuke142

    Цитата:
    как мне вывести в файл лог самой команды

    Не уверен, но может и сработать

    Код:
    wget -O - "http://ссылка"2>>log.txt  

     

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 19:49 01-06-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nuke142пример:
    Цитата:
    echo Date: %date:~0,2%-%date:~3,2%-%date:~6,4%   Time: %time%>>log.txt
    wget -O - "http://ссылка">>log.txt  
    для начала:
    Цитата:
    echo Date: %date:~0,2%-%date:~3,2%-%date:~6,4%   Time: %time%>>log.txt
    ECHO wget -O - "http://ссылка">>log.txt
    wget -O - "http://ссылка">>log.txt  

    nik4z
    Цитата:
    Не уверен, но может и сработать
    сработает при наличии потока ошибки - вот саму ошибку и выведет
     
     

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 22:11 01-06-2016
    nik4z



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

    Цитата:
    вот саму ошибку и выведет

    Некоторые утилиты выводят свой лог в поток stderr независимо, была ли ошибка,  относится ли это к wget не знаю.

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 05:17 02-06-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nik4z
    Цитата:
    Некоторые утилиты
    будь добр - приведи конкретный пример такой утилиты которая выводит в stderr командную строку своего вызова.
     

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 10:17 02-06-2016
    nimdamsk

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго всем.
     
    Как обработать файлы по шаблону?
     
    Нужно сделать примерно так:
     

    Код:
     
    for (*.ps, *.dvi) in dir\ -recurse do {
     if (
      filename contains("string")
       and
      is_bigger_than(10MB)
     )
      do ps2pdf -i filename -o filename.pdf  
    }
     

    Всего записей: 13 | Зарегистр. 09-08-2005 | Отправлено: 12:53 02-06-2016
    Jon_Dow

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

    Код:
    @ECHO OFF
    SET "MY_STRING=string"
    :: Вариант 1
    FOR /F "USEBACKQ TOKENS=1 DELIMS=" %%a IN (`DIR /A:-D /S /B "*%MY_STRING%*.ps" "*%MY_STRING%*.dv"`) DO ECHO %%a %%~za
    :: Вариант 2
    FOR /r %%a IN (*%MY_STRING%*.ps *%MY_STRING%*.dv) DO ECHO %%a %%~za
    проверку размера и действие пиши сам

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 14:45 02-06-2016
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Pasha_ZZZ, спасибо за попытку.
     
    Сделал в результате в виде:

    Код:
    copy %conf% oldconf.xml /Y 1>NUL
    sed /^<settings^>/,//d %conf%>%tmpconf%
    type %addconf%>>%tmpconf%
    sed /^<\/settings^>/,//!d %conf%>>%tmpconf%
    del /Q %conf%
    ren %tmpconf% %conf%

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 15:17 02-06-2016 | Исправлено: Joo1z, 15:20 02-06-2016
    ArabiQ

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

    Цитата:
    Проблема с кодировкой, она должна быть OEM , возможно редактор ее изменил.  

     
    Кодировка у меня правильная, я в Far-е делаю:  
    http://www.picvid.ru/img/2016-06/02/ufahw1i0sz08wcjd73j6a54ng.jpg
     
    Еще варианты есть?

    Всего записей: 15 | Зарегистр. 14-03-2013 | Отправлено: 16:17 02-06-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ArabiQ
    на приведенном скрине обрати внимание на строчку:
    ren "Гарик Сукачев и "Неприкасаемые" - Ольга.mp3"
    Ничего странным не кажется?! И с чего это FAR подсветку синтаксиса изменил?!
    Явный ляп - как минимум на этой строчке будет ругань...

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 18:53 02-06-2016
    ComboRam

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

    Цитата:
    Я же копировал название через комманду:  dir > file.cmd  
    а потом просто поправил его внутри.

    дорогой, ты выбрал для решения своих задач не лучший инструмент.
    вот: http://www.softpointer.com/download.htm
    ломать не надо. 30 дней полнофункциональный триал.

    Всего записей: 6 | Зарегистр. 25-05-2016 | Отправлено: 19:23 02-06-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ComboRam
    вот кстати да - высказывание:
    Цитата:
    Я же копировал название через комманду:  dir > file.cmd
    заведомо противоречит приведенному скрину. Явная ошибка постобработки списка, так как символ двойной кавычки частью имени быть не может.

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 19:34 02-06-2016
    ipmanyak



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ArabiQ Кодировка у тебя сейчас OEM 866 , а в винде имена файлов в кодировке 1251 ANSI.  У FAR дефолтовая кодировка 866, насколько я помню, если копи-пастил в нем, то имхо так и получилось.
     
    Поставь в свой батник в самом начале команду:
    chcp 1251 > nul  
    затем ren ....
    Должно сработать.
     
    В названии песни Сукачева - НЕПРИКАСАЕМЫЕ стоят в кавычках, или заранее переименуй этот файл убрав кавычки, или обрамляй каждую кавычку кавычками , типа  
    """НЕПРИКАСАЕМЫЕ"""


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

    Всего записей: 11724 | Зарегистр. 10-12-2003 | Отправлено: 07:43 03-06-2016 | Исправлено: ipmanyak, 07:48 03-06-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ipmanyak
    попробуй для начала создать имя файла содержащее кавычки, прежде чем делать какие-либо умозаключения

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 08:43 03-06-2016
    nik4z



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Jon_Dow
    Имя файла может содержать одиночные кавычки, внешне двойные и две одиночных выглядят одинаково.

    Всего записей: 218 | Зарегистр. 08-11-2015 | Отправлено: 09:08 03-06-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