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

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



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

    AntoshAReal
    for /f "delims=/:" %%b in ("%1") do SET Bukva=%%b
    Цитата:
    Причём в некоторых случаях это может быть так
    для такого случая должно подойти.

    ----------
    Мы все умрём. (-:

    Всего записей: 4891 | Зарегистр. 23-04-2009 | Отправлено: 08:42 12-05-2017
    NIKZZZZ



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

    Код:
    set parametr=%1
    set parametr=%parametr:~2,1%
    echo %parametr%

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 08:46 12-05-2017
    yiiconf2017

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

    Всего записей: 3 | Зарегистр. 11-05-2017 | Отправлено: 08:57 12-05-2017
    boi1eI

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

    Всего записей: 1645 | Зарегистр. 02-10-2014 | Отправлено: 09:23 12-05-2017 | Исправлено: boi1eI, 09:24 12-05-2017
    AntoshAReal



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

    Всего записей: 305 | Зарегистр. 31-08-2005 | Отправлено: 09:32 12-05-2017
    boi1eI

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AntoshAReal
    set parametr=%parametr:~1,1%

    Всего записей: 1645 | Зарегистр. 02-10-2014 | Отправлено: 09:34 12-05-2017
    NIKZZZZ



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

    Цитата:
    NIKZZZZ, увы, но нет.  

    Да, правильно меня boi1eI поправил, забыл арифметику.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 09:44 12-05-2017
    Drivishe



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день, нужен скрипт чтоб копировал сетвую папку и упаковывал в архив с датой и временем.
    Все написал все работает, почти все. Есть глюк с часами с 1 ночи до 9 не работает так как надо.
     
    Я понимаю что тут надо менять
    set HH=%TIME:~0,2%
    тока на что
     
    echo off
    SetLocal
    net use Z: \\192.168.200.254\Shara\User\Log
    rem [ Date ]
    set DA=%DATE:~0,2%
    set MO=%DATE:~3,2%
    set YE=%DATE:~6,4%
    rem [ Time ]
    set HH=%TIME:~0,2%
    set MM=%TIME:~3,2%
    set SS=%TIME:~6,2%
     
    set FOLDERs=%DA%-%MO%-%YE%_%HH%-%MM%-%SS%
     
    cd D:\backup
    mkdir %FOLDERs%
    cd %FOLDERs%  
     
    "C:\Program Files\WinRAR\rar.exe" a -r -m5 -inul D:\backup\%FOLDERs%\backup.rar z:\*.*

    Всего записей: 37 | Зарегистр. 31-08-2007 | Отправлено: 10:02 15-05-2017 | Исправлено: Drivishe, 10:17 15-05-2017
    MisHel64



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Drivishe Что значит "не работает"? Именно с часу? А не с полуночи? Пробел что-ли в часах лидирует?
    И почитай документацию на WinRar. Бывает полезно и позволяет решать стандартные проблемы не изобретая велосипед.
    И кстати, лучше использовать формат даты не DDMMYY, а YYMMDD, так потом проще нужный архив найти.
     
    IF "%HH:~0,1%"==" " SET HH=0%HH:~1,1%

    Всего записей: 2307 | Зарегистр. 21-09-2006 | Отправлено: 11:07 15-05-2017 | Исправлено: MisHel64, 11:16 15-05-2017
    Drivishe



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MisHel64
    Извиняюсь не правильно выразился. Не коректно, а именно он создает папку с датой отдельно и папку со временем отдельно. Тоесть появляються две папки
    1 папка: 15-05-2017_
    2 папка: 1-04-38

    Всего записей: 37 | Зарегистр. 31-08-2007 | Отправлено: 12:05 15-05-2017
    MisHel64



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Drivishe Ну точно, лидирующий пробел в часах. Или убираешь его (смотри выше), или читаешь документацию по командному интерпретатору, и понимаешь, что длинные имена со спец символами нужно заключать в " (ДВОЙНЫЕ ЛАПКИ).

    Всего записей: 2307 | Зарегистр. 21-09-2006 | Отправлено: 12:27 15-05-2017 | Исправлено: MisHel64, 12:29 15-05-2017
    Drivishe



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MisHel64 Спасибо за наводку, я пробовал не то в " (ДВОЙНЫЕ ЛАПКИ) брать сеичас попробовал.
    Вот это.
    set FOLDERs="%DA%-%MO%-%YE%_%HH%-%MM%-%SS%"
    все заработало так как надо.

    Всего записей: 37 | Зарегистр. 31-08-2007 | Отправлено: 13:36 15-05-2017
    RSEREGAR



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите сделать батник 12. Надо переместить все папки, в которых нет текстового файла в папку "D:\New".

    Всего записей: 702 | Зарегистр. 26-10-2008 | Отправлено: 20:25 15-05-2017
    MisHel64



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Drivishe По идее - неверно. Но раз работает...

    Всего записей: 2307 | Зарегистр. 21-09-2006 | Отправлено: 20:32 15-05-2017
    yurkesha



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Drivishe
    тогда уж чтобы не зависеть от национальных настроек текущей системы(и заодно для правильности текстовой сортировки) предлагаю классику:
    Код:
    REM Представление даты в нужном нам виде
    ECHO wscript.ECHO YEAR(DATE) ^& "-" ^& RIGHT(0 ^& MONTH(DATE),2) ^& "-" ^& RIGHT(0 ^& DAY(DATE),2) ^& "_" ^& RIGHT(0 ^& hour(TIME),2) ^& "-" ^& RIGHT(0 ^& minute(TIME),2) ^& "-" ^& RIGHT(0 ^& second(TIME),2) 1>"%TEMP%\tmp.vbs"
    FOR /F %%i IN ('cscript "%TEMP%\tmp.vbs" //Nologo') DO SET "TEKDATATIME=%%i"
    IF EXIST "%TEMP%\tmp.vbs" DEL "%TEMP%\tmp.vbs"
    (ECHO %TEKDATATIME%)
     

    Всего записей: 2741 | Зарегистр. 15-12-2003 | Отправлено: 10:43 20-05-2017
    Pasha_ZZZ



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Drivishe
    Вообще-то у RAR/WinRAR есть ключ -ag для задания имени архива. А потом можно папку при необходимости переименовать, взяв нужные данные из имени вновь созданного архива (если это нужно)

    Всего записей: 12375 | Зарегистр. 11-03-2002 | Отправлено: 10:55 20-05-2017
    rusenergo



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте! Помогите доработать командный файл:
     
    @echo off  
    ECHO.  
    ECHO Installing Hotfixes for Microsoft Windows XP SP3 Russian  
    ECHO --------------------------------------------------------------------------  
    ECHO 01 -Root Certificate Установка корневого сертификата
    start /wait Reg Import Hive.reg
    ECHO 02 -LocalFix Пакет исправлений ошибок локализации Windows XP SP3  
    start /wait WindowsXP-LocalFix-x86-RUS.exe /quiet /norestart
    ECHO 03 -KB942288-v3 Установщик Windows Installer 4.5  
    start /wait WindowsXP-KB942288-v3-x86-RUS.exe /quiet /norestart
    ECHO 04 -KB970553 Обновление для WMI MSI Provider  
    start /wait WindowsXP-KB970553-x86-RUS.exe /quiet /norestart
    echo.  
    echo Updates are installed! Please restart the computer to complete the installation!
    echo.  
    pause  
     
    Нужно, чтобы в конце установки в командной строке вместо сообщения "Для продолжения нажмите любую клавишу" выдавалось сообщение "Выполнить перезагрузку сейчас (yes/no)" Как это можно сделать?

    Всего записей: 97 | Зарегистр. 17-10-2014 | Отправлено: 10:35 24-05-2017
    YuS_2



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

    Цитата:
    Нужно, чтобы в конце установки в командной строке вместо сообщения "Для продолжения нажмите любую клавишу" выдавалось сообщение "Выполнить перезагрузку сейчас (yes/no)" Как это можно сделать?

    rusenergo
     
    Вместо команды pause:

    Код:
    ...
    set /p "a=Выполнить перезагрузку сейчас? (Y/N)  "
    if /i "%a%"=="Y" (<команда перезагрузки>)
    ...

    Всего записей: 3218 | Зарегистр. 03-02-2009 | Отправлено: 11:21 24-05-2017 | Исправлено: YuS_2, 11:22 24-05-2017
    rusenergo



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

    Всего записей: 97 | Зарегистр. 17-10-2014 | Отправлено: 14:44 24-05-2017
    MisHel64



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    rusenergo Как я понимаю, ты допиливаешь чужой пакет для установки обновлений. Это немного не верное решение. Нужно анализировать код возврата, и уже на основе его принимать решение о необходимости перезагрузки, причем после каждого обновления.

    Всего записей: 2307 | Зарегистр. 21-09-2006 | Отправлено: 22:04 24-05-2017
       

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