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

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

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

    Цитата:
    проверку через errorlevel на существование ресурса по условию
    ...
    Проще уж сравнивать "цель вашего визита" и %CD%

    Может быть все-таки через pushd/popd? Что-то вроде

    Код:
     
    pushd "%BCP%" && (
      for /f "skip=1 delims=" %%G in ('dir /B /ad-h /o-d') DO rd /s /q "%%~G"
      popd
    )
     


    Всего записей: 1883 | Зарегистр. 07-08-2002 | Отправлено: 13:32 13-01-2016
    YuS_2



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

    Цитата:
    Может быть все-таки через pushd/popd?

    Да, это даже лучше, только необходимо включить расширенную обработку команд...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 13:54 13-01-2016
    bredonosec



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    спасибо.
    Только опять не пойму почему, эхо исправно пишет только имя самой папки (без пути, хоть
    Цитата:
    echo %%~fG
    и стоит), rd- ищет эту папку рядом с батником..  
    путь видит только если скормить его через указанную переменную. %BCP%\%%G

    Всего записей: 16256 | Зарегистр. 13-02-2003 | Отправлено: 18:19 13-01-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bredonosec
    а ты команду "dir /B /ad-h /o-d'" ручками одиночно выполнить не пробовал?  
    Попробуй - и вопросы насчет имени пропадут - что заказывал - то и получил в вывод и никакой модификатор не добавит несуществующее в plain text...
     
    Добавлено:
    PS - подробности естественно в "DIR /?"

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



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

    Цитата:
    Только опять не пойму почему, эхо исправно пишет только имя самой папки


    Цитата:
    rd- ищет эту папку рядом с батником

    Вот! Я ведь, собственно, на это и обращал внимание несколько раз, что надо посмотреть, что именно выводится в лог.
    Один из выходов уже предложили чуть выше (pushd). Ну и ещё такой вариант:

    Код:
    dir /s/b/ad-h/o-d %BCP%

    - только в этом случае будет присутствовать вывод всех подпапок...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 04:17 14-01-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
    Цитата:
    dir /s/b/ad-h/o-d
    что самое немаловажное так это то что в этом случае будут выводиться полное имя папки вместе с путем.

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 09:17 14-01-2016
    YuS_2



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

    Цитата:
    выводиться полное имя папки вместе с путем.

    Да, именно это ведь и требовалось... а то, что будут выводиться подпапки, большой проблемы не составит. Либо удалять их все подряд, либо можно отфильтровать только необходимые и уже их удалять, но, имхо, проще pushd использовать...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:17 14-01-2016
    Unitaz



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть не очень стандартная задача  при работе программ с SSD иногда возникают повреждения файловой системы (NTFS) в одном случае перестают читаться файлы из директории d:/prog в другом случае просто убивается партишен d:\ , конечно это происходит не часто но очень далеко от моего рабочего места , требуется сделать автоматическое востановление работоспособности системы .
    1. Надо про-детектировать что произошла авария  тоесть не читается директория d:/prog или испортилась партиция .
    2. Отформатировать партицию D: и скопировать с защищённого диска C:\ директорию prog и запустить рабочую программу D:\prog\prog.exe
     
    как это реализовать с помощью батника ?

    Всего записей: 2289 | Зарегистр. 28-06-2002 | Отправлено: 16:14 19-01-2016
    arkor

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Unitaz
     
     
    Вторая часть вопроса делается так
    echo y|format d: /q
    copy c:\prog d:\ /Y
    d:\prog\prog.exe

    Всего записей: 37 | Зарегистр. 02-05-2005 | Отправлено: 16:31 19-01-2016
    hErAx

    Редактировать | Цитировать | Сообщить модератору
    Проще пропустить пункт 1. и сразу перейти  к 2.

    Отправлено: 16:32 19-01-2016
    Unitaz



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

    Цитата:
    Проще пропустить пункт 1. и сразу перейти  к 2.

    Да это  тривиальное решение задачи но оно сильно увеличивает время загрузки системы
    Вторая часть в общем то понятна и я о ней написал только для полноты картины , а вот как решить первую да ещё не нарваться на зависон ?
    P.S. Проблемы   с SSD стали появятся после перехода с SLC на MLC и возникают после неожиданного пропадения питания , думал что поможет отключение журналирования NTFS , но похоже дело не в этом , а в ошибках контроллера SSD в стрессовых условиях .

    Всего записей: 2289 | Зарегистр. 28-06-2002 | Отправлено: 22:46 19-01-2016 | Исправлено: Unitaz, 22:55 19-01-2016
    hErAx

    Редактировать | Цитировать | Сообщить модератору
    система Win 8.1 сборка.
    Принтер Kyocera FS-1040 GX подключён к Wi-Fi роутеру.
    При загрузке системы, всегда показывает статус "Отключён" в Устройствах и принтерах.
    На других компьютерах принтер всегда готов к работе без шаманства.
     
      Делаю так:
    • Удалить устройство;
    • Добавить принтер - жму "нужный принтер отсутствует в списке";
    • Добавить локальный или сетевой принтер с параметрами, заданными вручную - жму "Далее";
    • Использовать существующий порт - выбыраю созданный ранее порт, жму "Далее";
    • Выбран принтер Kyocera FS-1040 GX в списке драйверов - жму "Далее";
    • Использовать уже установленный драйвер (рекомендуется) - "Далее","Далее","Далее","Готово";
    • В списке устройств появляется мой принтер. И так до следующей перезагрузки.

    Как удаление и установку осуществить автоматически?
    Подскажите,какой командой производится удаление и установка принтеров?
     

    Отправлено: 22:57 19-01-2016
    Alex_Piggy

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Доброе время
    hErAx
    rundll32 printui.dll,PrintUIEntry /?
     
    Unitaz
    chkdsk /?
    Скорее всего  
    chkdsk d: /i /c || (  формат и тд )

    Всего записей: 1883 | Зарегистр. 07-08-2002 | Отправлено: 08:51 20-01-2016
    YuS_2



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

    Цитата:
    Из командной строки запускаю  
    for /f %i in ('dir C:\TEMP\_klsbcmdtmp* /b /a:d') do echo %i  
    Работает, а из батника нет.

    for /?

    Цитата:
    В пакетных файлах для команды FOR используется запись
     %%переменная вместо %переменная.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 10:44 20-01-2016
    Unitaz



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

    Цитата:
    chkdsk d: /i /c || (  формат и тд )
    а подробней ?
    Я вроде придумал , я буду проводить процедуру chkdsk и format только если пропадало питание , если не прошёл chkdsk запущу format  , а как это поустойчивей проделать чтобы не зависнуть ?
     

    Всего записей: 2289 | Зарегистр. 28-06-2002 | Отправлено: 12:20 21-01-2016
    YuS_2



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

    Цитата:
    @echo on  
    c:\jperf-2.0.2\bin\iperf.exe -c 172.16.199.193 > c:\jperf-2.0.2\log.txt  
    find /i log.txt "Mbits/sec"  
    for /f "tokens=6" %%i in (log.txt) do set i1=%%i


    Код:
    c:\jperf-2.0.2\bin\iperf.exe -c 172.16.199.193 > c:\jperf-2.0.2\log.txt  
    for /f "tokens=6" %%i in ('type "c:\jperf-2.0.2\log.txt"^|find /i "Mbits/sec"') do set i1=%%i

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 12:21 21-01-2016 | Исправлено: YuS_2, 12:22 21-01-2016
    Drivishe



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YuS_2
     
    все хорошо
     
    теперь он вот так выводит
    http://prntscr.com/9swbpr
     
    Можно просто одну цыфру

    Всего записей: 37 | Зарегистр. 31-08-2007 | Отправлено: 14:59 21-01-2016 | Исправлено: Drivishe, 14:59 21-01-2016
    Vanfear

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    это вопрос? Ы
     
    do set i1=%%i & echo %%i
     
    или если переменную не надо
    do echo %%i

    Всего записей: 554 | Зарегистр. 24-03-2010 | Отправлено: 16:24 21-01-2016
    Drivishe



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Vanfear
    Вопрос
     
    Можно просто одну цыфру ?
    Пробовал как ты пишеш  Vanfear обеими методами тоже не получается все равно пишит.  http://prntscr.com/9sxvkk

    Всего записей: 37 | Зарегистр. 31-08-2007 | Отправлено: 16:58 21-01-2016 | Исправлено: Drivishe, 17:12 21-01-2016
    lefrenchle

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

    Всего записей: 2 | Зарегистр. 21-01-2016 | Отправлено: 17:40 21-01-2016 | Исправлено: lefrenchle, 17:48 21-01-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