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

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



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

    Цитата:
    Вначале вы спрашивали про три строчки if, когда на соамом деле их пять

    Да это ведь не совсем важно, просто человек упростил до минимума... а вот первоначальный вопрос был не совсем понятен:
    Поочередное выполнение команд, т.е. в первом проходе к1, во втором к2 и т.д., но и тут же: если выбрана к1, то выполняется только она ... имхо, это каша, которую разобрать по зернышку - задача невыполнимая. А вот в полном коде стало всё более-менее понятно.
     
    Добавлено:
    king_stiven

    Цитата:
    Вот это  что за бардак?

    Почему бардак? Куча присваиваний значений переменным, но в одну строку и в конце вызов секции :WinX
    Там только кавычки надо бы расставить, ибо спецсимволы же... ну, теоретически могут вылезти

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 14:51 24-01-2016 | Исправлено: YuS_2, 15:01 24-01-2016
    king_stiven

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

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 14:57 24-01-2016
    hErAx

    Редактировать | Цитировать | Сообщить модератору
    king_stiven
    и што?
    строки  

    Код:
    echo.  
    echo.  
    echo ------------------- Интеграция MSDaRT ---------------------------  

    вообще не выполняются, но на суть это никак не влияет.

    Отправлено: 15:01 24-01-2016
    king_stiven

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

    Цитата:
    и што?

    Раз нет метки, то и перехода нет на метку.
     

    Цитата:
    echo.  
    echo.  
    echo ------------------- Интеграция MSDaRT ---------------------------  
     
    вообще не выполняются, но на суть это никак не влияет.

     
     
    Почему не выполняются?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 15:04 24-01-2016 | Исправлено: king_stiven, 15:04 24-01-2016
    YuS_2



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

    Цитата:
    Раз нет метки, то и перехода нет на метку.  

    Этот код неполный, поэтому и метки нет... там и переменных некоторых нет, в смысле есть попытка раскрыть, но значений нигде не присвоено...

    Цитата:
    Почему не выполняются?

    Потому, что переход goto выше

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:07 24-01-2016
    king_stiven

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

    Цитата:
    А вот в полном коде

    YuS_2

    Цитата:
    Этот код неполный

    Два взаимоисключающих заявления.
     
     

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 15:24 24-01-2016
    YuS_2



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

    Цитата:
    Два взаимоисключающих заявления.

    Может и так, но в нашем мире всё относительно...  
    Относительно первоначальной задачи - код можно назвать полным, но вот относительно корректности, то бишь выполняемости сценария в целом - код не совсем полный. Это становится очевидно после более подробного анализа. Вот такие вот противоречия... такшта, дедушка Альберт был прав со своей теорией, наверное.

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 15:38 24-01-2016
    king_stiven

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

    Цитата:
    такшта, дедушка Альберт был прав со своей теорией, наверное.  

     
    Это батники, а не философский раздел, автору надо было привести скелет кода, а не пару костей, тогда телепатить легче. Решений ему приведена масса, в следующий раз, надеюсь, придёт более подготовленным.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 15:47 24-01-2016
    RRRRR



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

    Цитата:
    exit /b  

    Работает!
    Эхх.... Я вчера пробовал их ставить и не получалось.  
    Наверно где то накосячил или команду писал неправильно типа exite /b. У меня это часто бывает
    Надо больше спать!  
     
    king_stiven

    Цитата:
    Этот код неполный, поэтому и метки нет...  

    YuS_2 прекрасно все понял и расписал так как есть. Видно, что профи.
    Вчера полночи экспериментировал, переписывал концовку, то ставил переход, то убирал. И копипастнул неполный, вернее только, что описание команд, да :MENU чуть выше стоит и все. разве это много меняет?    

    Всего записей: 1313 | Зарегистр. 14-11-2003 | Отправлено: 16:16 24-01-2016 | Исправлено: RRRRR, 16:34 24-01-2016
    YuS_2



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

    Цитата:
    Это батники, а не философский раздел

    Эмм ... я в ступоре. А философия тут при чем? ТО - чистая физика, т.е. наука точная, в отличие от философии...

    Цитата:
    автору надо было привести скелет кода, а не пару костей, тогда телепатить легче.

    Согласен и даже писал о том же, но... это зависит только от автора. А мы тут кофейной гущей и так всё облили...

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



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите пожалуйста подправить bat
     
    @echo off
    rem Estimate date/time in format YYYYMMDDhhmm.ss
    rem Skip incorrectness in time earlier than 10:00 - replace of leading whitespaces with '0'
    set now=%DATE: =0% %TIME: =0%
    rem Disassemble date and time on parts
    for /f "tokens=1-7 delims=/-:., " %%a in ( "%now%" ) do (
        rem Define your owned delimiters and order of tokens
        set now=%%c%%b%%a%%d%%e.%%f
    )
    rm date.txt
    echo %now% >> date.txt
     
    Получаю текущу дату и время в нужном мне формате
     
    201601242040.23  
     
    2016 - год
    01 - месяц
    24 - число
    20 - часы
    40 - минуты
    23 - секунды
     
    Как мне сделать чтобы при выполнении батника "часы" были на  3 часа меньше ?

    Всего записей: 297 | Зарегистр. 12-02-2003 | Отправлено: 22:21 24-01-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    MENN
    Надо взять линуксовую date, например из GNUWin32. Я так понимаю, вам надо получить время в UTC? Или при любом часовом поясе на компе вычитать 3 часа? Она и то, и другое умеет.

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 22:46 24-01-2016
    hErAx

    Редактировать | Цитировать | Сообщить модератору
    если
    Цитата:
    получить время в UTC
    то можно обойтись
    WMIC Path Win32_UTCTime Get /all /format:csv

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



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

    Всего записей: 297 | Зарегистр. 12-02-2003 | Отправлено: 03:31 25-01-2016
    Novich

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Есть некоторое количество батников, которое делает бекапы, внутри определено что бекапить например  
    set src1=\\baza\maket\karton.p65
    Но дальше для некоторых действий в файле cmd нужно только имя файла.
    Как из переменной src1 получить все начиная с после последнего слеша и до конца (т.е. получить karton.p65)?
     
    Ткните пожалуйста, куда копать?
    Пути в основном сетевые, но могут быть и локальные типа c:\maket\karton.p65 или русскоязычные с пробелами типа c:\maket\план картона.doc
     
    Спасибо!

    Всего записей: 117 | Зарегистр. 03-10-2002 | Отправлено: 15:16 04-02-2016
    Jon_Dow

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Novich
    при передаче этого пути в качестве параметра через CALL :METKA "%src1%" дальше сможешь получить желаемое через "%~nx1"

    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 15:21 04-02-2016
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Novich
    Цитата:
    set src1=\\baza\maket\karton.p65
    call :GetNX "%src1%"
    echo %NameExt%
    goto :eof
     
    :GetNX
    set NameExt=%~nx1

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    И  присвоение пиши так:  
    set "src1=\\baza\maket\karton.p65"
    раз уж
    Цитата:
     но могут быть и локальные типа c:\maket\karton.p65 или русскоязычные с пробелами типа c:\maket\план картона.doc  


    Всего записей: 732 | Зарегистр. 25-11-2006 | Отправлено: 15:22 04-02-2016
    Novich

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Вау, работает, спасибо большое!!!
     
    Добавлено:
    Добавочный вопрос, а не через call, напрямую, чтобы в одной строчке это вычислялось, прямо в команде, так можно сделать? Типа winrar.exe %~nx1  "%src1%"  
    (так не работает)
    Через call плохо тем, что источников может быть 10 и 15, и все время разные, и получается, что мне надо отслеживать, чтобы метки :GetNX были разные.

    Всего записей: 117 | Зарегистр. 03-10-2002 | Отправлено: 15:26 04-02-2016
    nik4z



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

    Код:
    set "src1=\\baza\maket\karton.p65"  
    for %%a in ("%src1%")  do winrar.exe "%%~nxa"  "%src1%"  

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