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

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

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

vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

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





    http://forum.ru-board.com/topic.cgi?forum=62&topic=17154

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 23:07 04-11-2008 | Исправлено: vu1tur, 11:38 26-05-2009
    pand



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Банальный вопрос - запуск из бата несколько экзешников одновременно. (просьба не начинать пинать заранее, прочитайте полностью) Система - Виста 64СП1.
    Все 3 пути с пробелами. Пробовал конструкцию типа  
    start ""
    start ""
    start ""
    Не работает, пробовал
    ""&""&""
    Не работает
    Так как же их запустить элегантно? Полагаю что если сделать отдельно 3 батника в непробельной зоне все заработает, но некрасиво это.

    Всего записей: 1529 | Зарегистр. 03-08-2004 | Отправлено: 03:08 25-12-2008
    Elroir



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

    Код:
     
    start "" "first program with spaces in the name.exe"
    start "" "second program with spaces in the name.exe"
    start "" "third program with spaces in the name.exe"
     


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

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

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

    Цитата:
    Утилита nircmdc.exe делает
     
    nircmdc.exe sendkey enter down
    nircmdc.exe sendkey enter up
     

     
    я не совсем понял что с ним делать, пожешь раказать как это сделать?
     
    из бат запускается програма и в этой проге надо нажать ф2 и после ентр, потом батник продолжает работу (копирует, удаляет и тд)
    что-то типа этого-
     
    xcopy "c:\....." "c:\...."
    cd "c:\...\...\1.exe"
    1.exe
    :и здесь уже надо нажать ф2  и ентр
    xcopy ......
    ren .....
    exit

    Всего записей: 9 | Зарегистр. 22-12-2008 | Отправлено: 10:04 25-12-2008
    vovikgr

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

    Всего записей: 155 | Зарегистр. 09-10-2004 | Отправлено: 11:41 25-12-2008
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vovikgr
    Утилита nircmd умеет менять время создания и модификации файла.

    Код:
     
    nircmd.exe setfiletime "c:\temp\myfile.txt" "24-06-2003 17:57:11" "22-11-2005 10:21:56"
     

     
    Можно воспользоваться также утилитой FileTouch - http://www.softtreetech.com/24x7/archive/47.htm
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 12:07 25-12-2008
    RomanF



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может ещё кто подскажет.
     
    Вот подкинули мне вариант как можно вытащить IP адрес нужного мне шлюза

    Цитата:
    @echo off  
    setlocal  
     
    for /f "tokens=3" %%i in ('  
        netsh diag show gateway ^| findstr "DefaultIPGateway"  
    ') do (  
        echo %%i | findstr "\<10\." 1>nul && set dg=%%i  
    )  
    echo %dg%

    В случае, если подсеть шлюза может быть разная (10.131.*, 10.151.* предложили следующий вариант

    Цитата:
    echo %%i | findstr "\<10\.1[35]1" 1>nul && set dg=%%i

    Собственно вопрос:
    как будет выглядеть регулярное выражение (см. предыдущая цитата), если подсеть будет 10.205.*, 10.189.*

    Всего записей: 67 | Зарегистр. 13-07-2007 | Отправлено: 19:59 25-12-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RomanF
    10\.[0-9][0-9][0-9]

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 21:18 25-12-2008
    RomanF



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev, вот как раз этого я не могу допустить, т.к. возможны попадания других шлюзов (ip адресов). Необходимо выбрать только нужный мне IP адрес из возможных подсетей. Например из 10.205.*, 10.189.* или 10.122.*

    Всего записей: 67 | Зарегистр. 13-07-2007 | Отправлено: 23:16 25-12-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RomanF
    А 10.131.*, 10.151.* уже не нужно?
    У findstr поддержка рег. выражений не ахти, возьми sed
    типа такого sed -r -n "/10\.(205|189|122)/p"

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 23:45 25-12-2008
    gbcfkf



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Товарищи!
     
    Как выудить из Win XP Pro ключ ОС?
     

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 09:12 26-12-2008
    real_LEM



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

    Цитата:
    Как выудить из Win XP Pro ключ ОС?  

    ProduKey

    Всего записей: 461 | Зарегистр. 11-09-2002 | Отправлено: 09:24 26-12-2008
    gbcfkf



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    real_LEM
    Спасибо, похоже то, что нужно.. даже на удаленной машине посмотреть ключ можно

    Всего записей: 702 | Зарегистр. 17-10-2006 | Отправлено: 09:30 26-12-2008
    RomanF



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    igor_andreev
    это unix'овая утилита, BAT - это windows.
    Впорос актуален.

    Всего записей: 67 | Зарегистр. 13-07-2007 | Отправлено: 09:57 26-12-2008
    igor_andreev

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

    Цитата:
    это unix'овая утилита

    бздыщщ

    Цитата:
    BAT - это windows.

    BAT - это мастдайки(95\98\Me), windows - это CMD
     

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 11:14 26-12-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RomanF
    если не хочешь иcпользовать sed.exe, то используй три строки

    Код:
     
    echo %%i | findstr "\<10\.205" 1>nul && set dg=%%i
    echo %%i | findstr "\<10\.189" 1>nul && set dg=%%i
    echo %%i | findstr "\<10\.122" 1>nul && set dg=%%i
     
     

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    не подскажите как сделать так:
    если в папке есть файл 01.txt то переименовать его в abc.txt, а если в папке есть 02.txt и 03.txt то 03.txt переместить в другую папку а 02.txt переименовать в cde.txt

    Всего записей: 9 | Зарегистр. 22-12-2008 | Отправлено: 12:07 26-12-2008
    PuzzleW

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    if exsist 01.txt ren 01.txt abc.txt
    if exsist 02.txt ren 02.txt cde.txt
    if exsist 03.txt move 03.txt another_folder\03.txt
     
    только ты определись твое 02.txt и 03.txt - это "И" или это "ИЛИ"

    Всего записей: 185 | Зарегистр. 19-12-2005 | Отправлено: 12:15 26-12-2008
    macxxxxx

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    PuzzleW
    именно "И"
    спасибо ))
     
    Добавлено:
    PuzzleW
    чёто не прокатывает, ему нужен именно 01.txt, мне нужно типа если есть 03.txt то значение правильно, а есль нет то ложно, что то типа токо

    Всего записей: 9 | Зарегистр. 22-12-2008 | Отправлено: 12:29 26-12-2008
    AlexLev59

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ВОПРОС:
    Можно ли программно вычислить, время выполнения командного файла?
    Спасибо.

    Всего записей: 113 | Зарегистр. 04-12-2006 | Отправлено: 13:35 26-12-2008 | Исправлено: AlexLev59, 13:40 26-12-2008
    Elroir



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

    Цитата:
    Можно ли программно вычислить, время выполнения командного файла?

    Можно, но код громоздкий получается:

    Код:
     
    @echo off
    setlocal
    for /f "tokens=1-4 delims=:," %%a in ('echo %time%') do call :setTime start %%a %%b %%c %%d
    :: ЗДЕСЬ ТВОЙ КОД
    :: Вместо строчки ping-a
    :: можно написать "call yourBatchFile.cmd"
     
    ping -n 63 127.0.0.1>nul
     
    :: КОНЕЦ ТВОЕГО КОДА
    for /f "tokens=1-4 delims=:," %%a in ('echo %time%') do call :setTime finish %%a %%b %%c %%d
    call :showTime
    goto :EOF
    :setTime
    set "%1Time=%2:%3:%4,%5"
    set "t=%5"
    set "s=%4"
    set "m=%3"
    set "h=%2"
     
    if "%t:~0,1%"=="0" set "t=%t:~1%"
    if "%s:~0,1%"=="0" set "s=%s:~1%"
    if "%m:~0,1%"=="0" set "m=%m:~1%"
    if "%h:~0,1%"=="0" set "h=%h:~1%"
     
    set "tt=%t%"
    set /a "ss=s * 100"
    set /a "mm=m * 6000"
    set /a "hh=h * 360000"
    set /a "%1=hh+mm+ss+tt"
     
    goto :EOF
    :showTime
    set /a "dif=%finish%-%start%"
    set /a "difHH=dif / 360000"
    set /a "difRem=dif %% 360000"
    set /a "difMM=difRem / 6000"
    set /a "difRem=difRem %% 6000"
    set /a "difSS=difRem / 100"
    set /a difTT=difRem %% 100"
    set "difference=%difHH%:%difMM%:%difSS%,%difTT%"
    echo start = %StartTime%
    echo finish = %FinishTime%
    echo Time taken : %difference%
     


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:00 26-12-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 100

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 6
    vu1tur (26-05-2009 11:39): часть 7 — http://forum.ru-board.com/topic.cgi?forum=62&topic=17154#1


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru