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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вот такой вопрос вдруг встал - понадобилось менять раскладку клавиатуры при помощи батника. Можно? Через сендкейс, наверное...

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 12:00 16-04-2008
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
     
    нужно определить что за система, если виста то один батник пускать если ХР то другой
     
    только и те и другие могут быть русские анклийские с СП без получается много GOTO  
     
    мне интересно или Виста или ХР  и все  
     
    спасибо

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 12:05 16-04-2008
    Elroir



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

    Цитата:
    в таком случае используется инструкция  

    Прочитай внимательно мое сообщение. А также сообщение 01MDM, про которое я там пишу.
     

    Цитата:
    поясните, плз, почему конструкция  
    start "" /max "%smailclient%" /nologo /mailu=....  
    не принимает высказывание /nologo за ключ, а в случае  
    start /max "%MAILER%" /nologo /BATCH:"%wd%rass.txt"  
    принимает?  

    Для команды start, первое выражение в кавычках - это заголовок окна. За ним может идти вызов самой программы с ключами или ключи самого start-a.  
     
    Добавлено:
    shva

    Цитата:
    Тяжело воспринимается фраза "Строка выполняется как одна команда", ведь очевидно, что в строке две команды объединенные символом "&" !?

    ОК, перефразирую - подстановка переменных в строку, состоящую из несколькох команд, объедененных символом &, выполняется до запуска первой из этих команд.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:14 16-04-2008
    01MDM



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

    Цитата:
    Можно? Через сендкейс, наверное...

     
    Да, vbs - он тебе ближе, как я понял. Или последний nircmd-2.10
     
    C:\WINDOWS\system32\kb16.com - у меня не работает.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:34 16-04-2008
    ebrr

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

    Цитата:
    rd c:\Test

     
    Спасибо, а как отключить программу если она исполняется. Т.е. в папке Test есть определенный файл к примеру test.doc, если он выполняется (работает) то папка не удаляется. Как можно отключить выполнение данного файла (закрыть его) и удалить папку вместе с этим файлом?

    Всего записей: 36 | Зарегистр. 19-07-2007 | Отправлено: 12:40 16-04-2008
    Rush

    Уже за тридцать...
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM

    Цитата:
    Да, vbs - он тебе ближе, как я понял. Или последний nircmd-2.10  

    Ну это-то понятно. Я через батник думал. И без сторонних средств - это обязательно...
    Ладно, попробую поискать в WMI, чтоб без сендкейса VBS...

    Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 12:56 16-04-2008
    KapralBel



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

    Код:
    @Echo Off
    FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "5.1.26"') DO GOTO XP
    FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "5.2.37"') DO GOTO 2003
    FOR /f "TOKENS=*" %%i IN ('ver ^| FIND "6.0.60"') DO GOTO Vista
    GoTO :EOF
     
    :XP
    Echo XP
    GoTO :EOF
     
    :Vista
    Echo Vista
    GoTO :EOF
     
    :2003
    Echo 2003
    GoTO :EOF
     

     
    ebrr
    Если нет ключа комм.строк, который завершает работу
    TaskKill /?
    Но нужно твердо знать, какая прога занимает файлы

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:53 16-04-2008
    ebrr

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

    Цитата:
    Если нет ключа комм.строк, который завершает работу  
    TaskKill /?  
    Но нужно твердо знать, какая прога занимает файлы

     
    Т.е. надо написать TaskKill/Word.exe?
    А можно завершить выполнение именно фанного файла test.doc?

    Всего записей: 36 | Зарегистр. 19-07-2007 | Отправлено: 14:00 16-04-2008
    bmax

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Благодарю king_stiven за ответ. Работает!
     
     
    for /f "tokens=*" %%c in ('dir "D:\1\*.*" /t:c /b /a:-d') do (  
    xcopy "D:\1\%%c" D:\2  
    goto :eof  
    )
     
    Еще вопросик, если позволите,    
    Как перед копированием посчитать количество файлов в папке D:\2 и при копировании  
    последнего созданного файла переименовывать его  следующим образом:
     
    11сегодняшняя дата(только число)кол-во файлов(если 1, то что бы записывалось 01 ) расширение тоже менялось
    например: qwerty.txt -> 111601.dvc    
     
    Спасибо всем откликнувшимся!

    Всего записей: 32 | Зарегистр. 13-09-2006 | Отправлено: 14:23 16-04-2008
    GGS



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

    Всего записей: 1000 | Зарегистр. 25-03-2002 | Отправлено: 14:47 16-04-2008 | Исправлено: GGS, 14:50 16-04-2008
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    bmax, файлы посчитать несложно
    for /f %%a in ('dir /b /a:-d d:\2 ^| find /c /v ""') do set /a countfiles=%%a
    из даты вырезать число тоже несложно %date:~0,2%
    чего там тебе ещё не хватает для переименования?
    ren /?
    dir /?
    for /?

    Всего записей: 2920 | Зарегистр. 25-04-2007 | Отправлено: 16:01 16-04-2008
    JohnRD

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
     
    спасибо, до меня не дошло как всегда
     
    как можно проверить на присутствие в сети машины по ping,  
    если есть ping то запустить на ней батник... с помощью psexec
     
    подсеть 192.168.60.1/24
     
    нашел примеры умных людей но куда впихнуть запуск psexec ???

    Код:
    Set cWork=0
    For /l %%a In (2,1,254) Do Call :CompWork 192.168.0.%%a  
    If %cWork%==0 (ShutDown /?)
    GoTo :EOF
     
    :CompWork
    Echo Ping %1
    Ping -n 1 %1 >Nul
    If ErrorLevel 1 (Goto :EOF)
    If ErrorLevel 0 (Set cWork=1)
    GoTo :EOF  

     

    Код:
    PING server | FIND "TTL=" >NUL
    IF ERRORLEVEL 1 GOTO Error
    ..
    ..
    ..
    goto Exit
    :Error
    echo Server is not available
    :Exit  

    Всего записей: 205 | Зарегистр. 29-08-2004 | Отправлено: 16:38 16-04-2008
    bmax

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    для переименования вроде бы все есть, хелп читал, топик тоже, но не могу воедино собрать все что имею, буду рад любой помощи
     
    @echo off
    for /f "tokens=*" %%i in ('dir /b /s /a-d "D:\1\*.*"') do set /a count+=1
    for /f "tokens=*" %%c in ('dir "D:\1\*.*" /t:c /b /a:-d') do (  
    xcopy "D:\1\%%c" D:\2\как присвоить имя 11сгодняшняя дата(толькочисло)количество файлов.другое расширение  
    goto :eof  
    )
     
     
     
    Добавлено:
    Всем спасибо, работает:
     
    @echo off
    for /f "tokens=*" %%i in ('dir /b /s /a-d "D:\1\*.*"') do set /a count+=1
    for /f "tokens=*" %%c in ('dir "D:\1\*.*" /t:c /b /a:-d') do (  
    xcopy "D:\1\%%c" D:\2\11%date:~0,2%%count%.dvc
    goto :eof  
    )  
     
    Добавлено:
    Если количество файлов в паке которой считам меньше десяти как сделать так что бы в имени файла к количеству файлов добавлялся 0, т.е. , тчобы число всегда было двузначным
     
    @echo off  
    for /f "tokens=*" %%i in ('dir /b /s /a-d "D:\1\*.*"') do set /a count+=1  
    for /f "tokens=*" %%c in ('dir "D:\1\*.*" /t:c /b /a:-d') do (    
    xcopy "D:\1\%%c" D:\2\11%date:~0,2%%count%.dvc  
    goto :eof    
    )

    Всего записей: 32 | Зарегистр. 13-09-2006 | Отправлено: 16:59 16-04-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ebrr
    taskkill /fi "windowtitle eq test.doc"
     
    Добавлено:
    JohnRD
    If ErrorLevel 0 (Set cWork=1) - вот эта строка отвечает за удачный пинг

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:49 16-04-2008
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ругается на это:
     

    Код:
    ftp -s:downloadcomands.cms -A dnl-ru1.kaspersky-labs.com

     

    Цитата:
    File too large for TYPE A.

     
    Подскажите, как подправить ?

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 20:32 16-04-2008 | Исправлено: SymA, 20:50 16-04-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SymA
    А что в downloadcomands.cms?
     
    Либо в нем указание на диск A:, либо с анонимным логином есть ограничения на скачку. Это только предположение.

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:34 16-04-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    SymA
    В кратце повтори задачу - а то лень топик перелистывать
     
    Имхо, если то что я думаю - то у меня на работе есть готовое решение

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 21:38 16-04-2008
    SymA



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Необходимо скачать архив (обновление Антивирусных бах Касперского)
     
    downloadcomands.cms

    Код:
    get zips/av-i386&ids-cumul.zip C:\Downloads\Kis6\av-i386&ids-cumul.zip
    quit

     

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

    а DownloadMaster нормально качает . . .

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 21:54 16-04-2008
    igor_andreev

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

    Цитата:
    Подскажите, как подправить ?

    добавить команду BINARY в скрипт
     

    Всего записей: 1667 | Зарегистр. 08-12-2004 | Отправлено: 22:10 16-04-2008
    SymA



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

    Цитата:
    добавить команду BINARY в скрипт

     
    В какое место ?
     
    Спасибо

    Всего записей: 56 | Зарегистр. 10-12-2007 | Отправлено: 22:26 16-04-2008 | Исправлено: SymA, 22:49 16-04-2008
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru