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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7

Модерирует : KLASS, IFkO

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Задачи на bat-файлах 7
(часть 1, часть 2, часть 3, часть 4, часть 5, часть 6)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Также для удаления концевых пробелов пользуйтесь скриптом от Nagual, или VBS-Скрипт-Модулем от ViSiToR.
 
Для перекодирования кирилицы 866<<>>1251 пользуйтесь онлайн сервисом Перекодировщик кириллицы

 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки
 
Полезные утилиты
 
Готовые решения и частые вопросы:
  • Встроенный справочник по командам
  • Создание помощи по всем командам консоли 2000 и XP
  • Делаем паузу в командном файле стандартными средствами Windows
  • Альтернативные решения »
  • Работа с текстом, датой, и файлами »
  • Администрирование, автоматизация и сеть »
  • Работа с переменными и параметрами ком. строки »
     
    Описания работы команд и символов участниками темы:
    · setlocal enabledelayedexpansion и переменные окружения
    · символы & и && в командной строке
    · Переменная %0

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    Maza_Faka



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

    Код:
     
    sc config /?
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 18:34 01-07-2009
    sergxz

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подключаю удаленную машину  
    net use K: \\comp\share /user:user1 password
    xcopy K:\files.rar C:\Temp /d  /c  /e  /z  /y     ( копирую что то...)
    дальше хочу отключить диск K
    net use K: /delete  
    Но выходит запрос :
    В подключениях к K: имееются  открытые файлы и/или незавершенные операции поиска в каталогах.  
    Продолжить отключение и закрыть? Y/N  
    Пока не нажму ДА батник весит, а мне нужно чтобы дальше под буквой K подцепился другой компьютер, скопировать с него, отключить диск K, и по новой.....
    Пробовал между командами xcopy и net use/delete вставлять ping -n 10 127.0.0.1, думая что нужно какое то время после копирования, но нет...не помогает...
    Пожалуйста, кто знает- помогите...

    Всего записей: 11 | Зарегистр. 16-09-2005 | Отправлено: 09:57 02-07-2009
    Maza_Faka



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

    Код:
     
    Echo Y | net use K: /delete
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 10:07 02-07-2009
    5ar5



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто-нибудь может помочь по моему вопросу выше?

    Всего записей: 36 | Зарегистр. 23-02-2006 | Отправлено: 10:27 02-07-2009
    sergxz

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

    Цитата:
    sergxz  
    А если так:  
     
    Код:
     
    Echo Y | net use K: /delete  

     
    Все получилось! Спасибо!)))

    Всего записей: 11 | Зарегистр. 16-09-2005 | Отправлено: 12:33 02-07-2009
    01MDM



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

    Цитата:
    Кто-нибудь может помочь по моему вопросу выше?

    Попробуй утилиту gsar.exe
    Она специально для замены текста в файле.
     

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:30 02-07-2009
    alexander6161



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот такой вопрос:
     
    Изначально имеем HEX-число 123456. К нему надо прибавить 1.
    set /a A=0x123456+1
    Получится число 1193047 DEC (десятичное)
    Можно ли средствами батника вернуть его назад в HEX, это нужно для обработки его побайтно.
    То есть как его привести в вид 123457 ?

    Всего записей: 185 | Зарегистр. 17-08-2008 | Отправлено: 20:45 02-07-2009 | Исправлено: alexander6161, 22:22 02-07-2009
    karvai



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

    включаться vlc и командное окно, как сделать что бы окно сразу закрывалось?
     
    Добавлено:
    ....

    Код:
    cd C:\Program Files\VideoLAN\VLC\
    vlc.exe  {команда}

    Всего записей: 1 | Зарегистр. 02-07-2009 | Отправлено: 23:20 02-07-2009
    2life

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хочу совместить архивирование средствами 1с 7.7 с резервным копированием на сетевой диск.
    Задача:
    Что есть сейчас: программа 1с v.7.7, для неё написан cmd запускаемый вручную (приведен внизу).
    Запускается 1с, поl учетной записью Backup, далее читаются настройки из файла с раширением .prm. В итоге получаем файл с одним и тем же назанием, в неком каталоге.
     
    Что хочется: после выполнения этого cmd  что бы запустилась задача на копирование, и переименование по сегодняшней дате, и времени, на удаленный сервер, в определенный каталог, при этом количество копий как то ограничивалось, например 60 полных копий.
     
    Я пока в состоянии написать это:
     
    @echo off
    REM 1c upload started
    "C:\Program Files\1Cv77\BIN\1cv7s.exe" config /D"F:\Base1C\PRBasic\" /NBackup /PziK77b /@f:\backup\zik-current\zik.prm
    REM upload transfer to backup srv started
     
    .....

    Всего записей: 86 | Зарегистр. 04-08-2006 | Отправлено: 00:12 03-07-2009 | Исправлено: 2life, 00:22 03-07-2009
    alexander6161



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    karvai
    Цитата:
    включаться vlc и командное окно, как сделать что бы окно сразу закрывалось?

    Вот так делай:
    Код:
    cd C:\Program Files\VideoLAN\VLC\
    start "" vlc.exe  {команда}

    Всего записей: 185 | Зарегистр. 17-08-2008 | Отправлено: 17:56 03-07-2009 | Исправлено: alexander6161, 17:57 03-07-2009
    VirusFUN

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ,  помогите решить такую задачу.....
     
    У меня 2 мониттора. Обычный и телевизор.
    На обычном я читаю, работаю итд... на телеке я играю, смотрю фильмы итд.
    проблема такая - чтобы поиграть в игру, приходится заходить в настройки видеокарты и говорить, что главным монитором будет телек. Тогда игра запускается на телеке... БЕСИТ постоянно так переключаться!
     
    Хочу создать батник, который запуская игру делает главным указанный монитор, а после завершения игры - менял все обратно.
    Или можно даже не менять местами мониторы, а просто указывать на каком из них запускать ту или иную прогу?? если можно - то как?
     
    ОПЕРАЦИОННАЯ СИСТЕМА - VISTA!
     
    + заодно еще хотелось бы знать, можно ли через cmd меня разрешение экрана и прочие его настройки?..

    Всего записей: 67 | Зарегистр. 22-06-2006 | Отправлено: 11:05 04-07-2009
    Maza_Faka



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

    Цитата:
    можно ли через cmd меня разрешение экрана

    Ищем в шапке nircmd

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 11:58 04-07-2009
    VirusFUN

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    спасибо! полезная вещ.....
    но ведь это же программа работающая из консоли... А можно ли решить мои задачи СТАНДАРТНЫМИ средствами?

    Всего записей: 67 | Зарегистр. 22-06-2006 | Отправлено: 13:56 04-07-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    VirusFUN
    http://forum.ixbt.com/topic.cgi?id=49:10066:31#31
     

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 01:04 06-07-2009
    NvvLazyTiger



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    2life
    Цитата:
    Что хочется: после выполнения этого cmd что бы запустилась задача на копирование, и переименование по сегодняшней дате, и времени, на удаленный сервер, в определенный каталог, при этом количество копий как то ограничивалось, например 60 полных копий.
    Распиши, что и как должно делаться:
    - как именуется (как идентифицировать) то, что следует скопировать;
    - правило переименования "есть->должно быть" (что удаляется/добавляется в имени.расширении).
     
    Уточни касаемо "сегодняшней даты, и времени", - должен ли скрипт работать при любых локальных настройках даты/времени?? Если "нет", - приведи выдачу (формат) команд
    Код:
     echo %date%
    echo %time%

    Всего записей: 257 | Зарегистр. 14-02-2009 | Отправлено: 04:15 06-07-2009
    saym101



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Подделал скрипт архивации. Который запускается через планировщик задач. - cmd /c D:\BAT\Arc_Day.bat 1
    Где единица номер создаваемой папки, поставив 2, 3, 4, и тд. получим новые папки. И скажем запустив архивацию по дням недели получим семь папок на каждый день. Плюс раз в месяц, ну и тд.

    Код:
     
    @echo off
    : : подключаем сетевой диск
    if exist B:\ goto end else if not exist B:\ goto no
     
    :no
    net use B: \\1atserver\BackUp /persistent:yes >Nul 2<&1  
    goto end
    :end
    : :  Время задержки -n раз, ping 15 раз, где то 15 секунд
     ping 127.1 -n 10  >NUL  
     
    SET Path=%PATH%;D:\SERVER\BAT
     
    set f_year=%f_date:~6,4%
    set f_month=%f_date:~3,2%
    set f_day=%f_date:~0,2%
    set f_dat=%f_year%_%f_month%_%f_day%
    set iskl-direct=D:\Bat\iskl-direct.lst
    set iskl-gazstroy=D:\Bat\iskl-gazstroy.lst
    set iskl-home=D:\Bat\iskl-home.lst
    set iskl-sales=D:\Bat\iskl-sales.lst
    set iskl-vsg_all=D:\Bat\iskl-vsg_all.lst
    set atserver=B:
     
    : : ##############################
    set direct=E:\network\Direct
    set direct_arc=E:\BackUp\Direct.rar
    set direct_log=E:\BackUp\Direct.log
    : :  ##############################
    set gazstroy=E:\network\Gazstroy\
    set gazstroy_arc=E:\BackUp\Gazstroy.rar
    set gazstroy_log=E:\BackUp\Gazstroy.log
    : :  ##############################
    set homefolders=E:\network\homefolders
    set homefolders_arc=E:\BackUp\homefolders.rar
    set homefolders_log=E:\BackUp\homefolders.log
    : :  ##############################
    set sales=E:\network\Sales
    set sales_arc=E:\BackUp\Sales.rar
    set sales_log=E:\BackUp\Sales.log
    : :  ##############################
    set vsg_all=E:\network\VSG_ALL
    set vsg_all_arc=E:\BackUp\VSG_ALL.rar
    set vsg_all_log=E:\BackUp\VSG_ALL.log
    : :  ##############################
    : :   первый путь(имя файла) куда архивируем - второй что архивируем
     
        rar u -as -ac -r -m5 -ep1 -pvsg -t  %direct_arc%    >%direct_log%        %direct%    -x@%iskl-direct%
        rar u -as -ac -r -m5 -ep1 -pvsg -t  %gazstroy_arc% >%gazstroy_log%    %gazstroy%    -x@%iskl-gazstroy%    
        rar u -as -ac -r -m5 -ep1 -pvsg -t  %homefolders_arc%    >%homefolders_log%    %homefolders%    -x@%iskl-home%
        rar u -as -ac -r  -m5 -ep1 -pvsg -t  %sales_arc%    >%sales_log%        %sales%    -x@%iskl-sales%
        rar u -as -ac -r  -m5 -ep1 -pvsg -t  %VSG_ALL_arc%    >%VSG_ALL_log%    %VSG_ALL%    -x@%iskl-vsg_all%
     
    : : ############################### проверяем наличие папки
     
    if not exist B:\direct\Day_%1 (md B:\direct\Day_%1) else if exist  B:\direct\Day_%1\ goto fil
    :fil
    del /Q /F /S  B:\direct\Day_%1\* >NUL
    for /f "delims=" %%i in ('dir "B:\direct\Day_%1\" /a:d /b') do rmdir /s /q "B:\direct\Day_%1\%%i"
    : : ###############################
    if not exist B:\gazstroy\Day_%1 (md B:\gazstroy\Day_%1) else if exist  B:\gazstroy\Day_%1\ goto fil
    :fil
    del /Q /F /S  B:\gazstroy\Day_%1\* >NUL
    for /f "delims=" %%i in ('dir "B:\gazstroy\Day_%1\" /a:d /b') do rmdir /s /q "B:\gazstroy\Day_%1\%%i"
    : : ###############################
    if not exist B:\homefolders\Day_%1 (md B:\homefolders\Day_%1) else if exist  B:\homefolders\Day_%1\ goto fil
    :fil
    del /Q /F /S  B:\homefolders\Day_%1\* >NUL
    for /f "delims=" %%i in ('dir "B:\homefolders\Day_%1\" /a:d /b') do rmdir /s /q "B:\homefolders\Day_%1\%%i"
    : : ###############################
    if not exist B:\sales\Day_%1 (md B:\sales\Day_%1) else if exist  B:\sales\Day_%1\ goto fil
    :fil
    del /Q /F /S  B:\sales\Day_%1\* >NUL
    for /f "delims=" %%i in ('dir "B:\sales\Day_%1\" /a:d /b') do rmdir /s /q "B:\sales\Day_%1\%%i"
    : : ###############################
    if not exist B:\vsg_all\Day_%1 (md B:\vsg_all\Day_%1) else if exist  B:\vsg_all\Day_%1\ goto fil
    :fil
    del /Q /F /S  B:\vsg_all\Day_%1\* >NUL
    for /f "delims=" %%i in ('dir "B:\vsg_all\Day_%1\" /a:d /b') do rmdir /s /q "B:\vsg_all\Day_%1\%%i"
     
    : : ###############################
     
        copy /Y /V E:\BackUp\Direct.rar    %atserver%\direct\Day_%1\%f_dat%_Direct.rar    
        copy /Y /V E:\BackUp\Gazstroy.rar    %atserver%\gazstroy\Day_%1\%f_dat%_Gazstroy.rar
        copy /Y /V E:\BackUp\homefolders.rar    %atserver%\homefolders\Day_%1\%f_dat%_homefolders.rar
        copy /Y /V E:\BackUp\Sales.rar    %atserver%\sales\Day_%1\%f_dat%_Sales.rar
        copy /Y /V E:\BackUp\VSG_ALL.rar    %atserver%\vsg_all\Day_%1\%f_dat%_VSG_ALL.rar
     
    Exit
     

    Есть что поправить и уменьшить или нет? Просто хоть создан и работает, но не так уж я и селен в программировании. Да и скрипт может кому пригодится.

    Всего записей: 252 | Зарегистр. 16-04-2002 | Отправлено: 10:12 06-07-2009
    igor_andreev

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

    Цитата:
    Есть что поправить и уменьшить или нет?

    В папке WinRAR есть chm-файлик справки(или Rar.txt), почитай там про ключ ком. строки -ag и уменьшишь батник раза в три.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 12:30 06-07-2009 | Исправлено: igor_andreev, 12:35 06-07-2009
    VirusFUN

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven, спасибо за ссылку.... я это уже читал. НА ВИСТЕ НЕ РАБОТАЕТ!
     
    C:\Users\VirusFUN>rundll32.exe NvCpl.dll,dtcfg primary 1
     
    C:\Users\VirusFUN>
    Error: API not supported on this version of Windows.

    Всего записей: 67 | Зарегистр. 22-06-2006 | Отправлено: 13:03 06-07-2009 | Исправлено: VirusFUN, 13:07 06-07-2009
    DamNet

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем привет... сорри что пишу в этой теме, но я "обыскался", не могу понять, почему в скриптах пишется > nul
    что это значит?? какая будет разница, если этого не написать.
     
    как пример:
    cd тут_путь
    for /f "token=*" %%e in (`dir /b /a:d`) do (
        cd "%%e\папка" >nul
       move "%%e\папка_чтокто кудато" "ещё что-то кудато" > nul
    )
     
    Заранее спасибо...
       

    Всего записей: 46 | Зарегистр. 12-08-2003 | Отправлено: 16:09 06-07-2009
    HaK1R



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    DamNet
    > перенаправление. nul это пустота, ничего. а >nul это перенаправление в ноль, т.е. убрать печать

    Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 18:20 06-07-2009
       

    Страницы: 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 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru