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

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

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

evle (19-03-2008 19:44): Лимит страниц.
Задачи на bat-файлах 5
 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

vu1tur



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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 15:21 11-09-2007 | Исправлено: Elroir, 01:52 26-02-2008
    king_stiven

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

    Цитата:
    По логике в данном месте, где "Содержимоепапки", что должно происходить? Какое сравнение ведётся?  

    Вот твой пример

    Цитата:
    D:\>dir "file.exe" /t:c /a:-d /s  
     Том в устройстве D не имеет метки.  
     Серийный номер тома: C873-6220  
     
     Содержимое папки D:\Experement\  
     
    09.12.2007  11:38         6 217 728 file.exe  
                   1 файлов      6 217 728 байт  
     
         Всего файлов:  
                   1 файлов      6 217 728 байт  
                   0 папок  11 050 561 536 байт свободно  

    батник сравнивает два первых слова каждой строки с "Содержимое папки" или как там у тебя . Не зря я спрашивал как там по английски будет, чтобы ещё одну проверку для англ винды включить.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 18:48 17-03-2008 | Исправлено: king_stiven, 18:49 17-03-2008
    HW2yS

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    всем доброго времени суток  
    возник вопросец
    на работе постоянно приходится возится с Microsoft Virtual PC
    приходится удалять , добавлять VM-ы
    в хелпе вычитал следующий способ
    создаём bat в котором пишем
    "C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -registervm "C:\_sysop\win2k3_SP2_R2_vol_eng\win2k3_SP2_R2_vol_eng.vmc"
    exit
    всё замечательно фурычит кроме 2-ух вещей  
    во первых постоянно приходится создавать новый батник  
    а во вторых если из 10-и машин допустим с 3-й есть какие-то проблемы  
    батчик просто зависает  
    собственно вопрос: можно ли автоматизировать процес
    ну как то так бат ищет в папке файлы с расширением *.vmc
    и потом добавляет их на автомате .желательно с игнорированием ошибок
    (а если при этом будет создаватся лог это вообще была бы фантастика)
    что скажите реально ? и если да то как это сделать ?
    или просто покажите готовый если не сложно
    заранее спасибо

    Всего записей: 87 | Зарегистр. 21-11-2006 | Отправлено: 05:48 18-03-2008
    Nagual



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

    Код:
    @echo off
    set "c="C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -registervm"
    set "d=C:\_sysop\win2k3_SP2_R2_vol_eng\*.vmc"
    for %%a in ("%d%") do %c% "%%a">>log.txt

    одной строкой будет так:

    Код:
    @echo off
    for %%a in ("C:\_sysop\win2k3_SP2_R2_vol_eng\*.vmc") do "C:\Program Files\Microsoft Virtual PC\Virtual PC.exe" -registervm "%%a">>log.txt

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 08:59 18-03-2008 | Исправлено: Nagual, 09:06 18-03-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    HW2yS
    А запускается только один экземпляр Virtual PC? В котором несколько виртуальных машин?
    И все *.vmc в одной папке?
     
     
    Добавлено:
    Nagual


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:14 18-03-2008
    TimAlex



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

    Код:
    :: Скрип копирует содержимое  documents and settings\пользователь\Избранное(Рабочий стол,Мои документы) каждого пользователя
    :: в папку на диске D с именнем "старое_с_дата"
    ::
    @echo off
    del name.txt >nul
    del user.txt >nul
    set dis=""  
     
    set patch_copy="d:\old_c_%date%"
    md  %patch_copy% >nul
     
    set dis=""
    set /p dis=Имя диска старого ПК (c,d,e,f):
     
    if /i %dis%=="c" (goto w_o)
    if /i %dis%=="" (goto w_o)
     
    if exist %dis%:\windows\system32\config\system. (
            reg load HKLM\old_pk  %dis%:\windows\system32\config\system. >nul
            reg export HKLM\old_pk\ControlSet001\Control\ComputerName\ComputerName name.txt >nul
            reg unload HKLM\old_pk >nul
            )  
    if exist %dis%:\winnt\system32\config\system (
                reg load HKLM\old_pk  %dis%:\winnt\system32\config\system. >nul
                reg export HKLM\old_pk\ControlSet001\Control\ComputerName\ComputerName name.txt >nul
                reg unload HKLM\old_pk >nul
                 )  
    :w_o
    @echo on
    Set Key=""ComputerName""
    For /F "usebackq delims=" %%i In (`Find /I "%Key%=" name.txt`) Do Set Value=%%i
     
     
    if  %ERRORLEVEL% leq 0 (
        set nam=%Value:~+16,-1%
        echo %nam%> %patch_copy%\ver.txt
        ) else hostname >%patch_copy%\ver.txt
    )
     
    @echo off
     
    if %dis%=="" (set dis=c)  
     
    date/t >>%patch_copy%\ver.txt
    time/t >>%patch_copy%\ver.txt
     
    for /f "delims=" %%a in (
        'dir "%dis%:\documents and settings" /b /s /a:d ^| find /v /i "\Default" ^|find /v /i "\ntsetup" ^| find /v /i "Ссылки"^| findstr "Избранное"') do (for /f "delims=\ tokens=3" %%b in ("%%a") do (echo %%~nxb>>user.txt))
     
    for /f "delims=" %%a in (user.txt) do (
     xcopy "%dis%:\documents and settings\%%a\Избранное\*.*" "%patch_copy%\%%a\Избранное" /e /c /I /H /R /K /Y
     xcopy "%dis%:\documents and settings\%%a\Рабочий стол\*.*" "%patch_copy%\%%a\Рабочий стол" /e /c /I /H /R /K /Y
     xcopy "%dis%:\documents and settings\%%a\Мои документы\*.*" "%patch_copy%\%%a\Мои документы" /e /c /I /H /R /K /Y
    )
     
    del /f/q/s "%patch_copy%\All"
    del user.txt
    del name.txt
     

     
    так вот заковыка, если вводим "с" или пусто то нормально,
     

    Код:
     
    ovt_001
    18.03.2008  
    12:17
     

     а вот при подключении винта с виндой указываю "е" тогда пишет  в файл ver.txt
     

    Код:
    Режим вывода команд на экран (ECHO) включен.
    18.03.2008  
    12:15
     

    но все остальные файлы копирует нормально...
    в чем заковыка, подскажите пожалуста..

    Всего записей: 34 | Зарегистр. 05-04-2006 | Отправлено: 09:25 18-03-2008 | Исправлено: TimAlex, 10:36 18-03-2008
    Joolz

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sdaww
    Можно, только нужно установить у себя WindowsXP SupportTools.
    И юзать из него утилиту netdom.

    Всего записей: 100 | Зарегистр. 24-01-2008 | Отправлено: 09:37 18-03-2008 | Исправлено: Joolz, 09:40 18-03-2008
    sdaww

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Joolz, СПАСИБО!
    Щас буду пробовать!

    Всего записей: 89 | Зарегистр. 17-01-2007 | Отправлено: 09:50 18-03-2008
    MazayK

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Видел на форуме батник, который регистрирует скопированные в системную папку Fonts шрифты, и нет необходимости перезагружать комп. А есть ли подобный батник для регистрации IP и DNS адресов? Менять их задача простая, но если IP меняется, то всё равно к Интернет не подключен, пока не перезагрузишь компьютер. Пусть это скрипт VBS. Спасибо.

    Всего записей: 35 | Зарегистр. 30-12-2006 | Отправлено: 14:07 18-03-2008
    yonder2009

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть у меня программа для работы с файлами. Запускается она примерно так
    c:\program.exe /<ключ> <файл>
     
    Сразу после вызова она выдает строчку текста, затем пустая строка, затем
    пароль:
     
    и вот тут хотелось бы подставлять его автоматически(не важно откуда - в этом же bat-файле, из другого файла или еще как-то). Как я только не пробовал... Может вы поможете?

    Всего записей: 2 | Зарегистр. 18-03-2008 | Отправлено: 14:56 18-03-2008
    Elroir



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

    Код:
    echo ТВОЙ_ПАРОЛЬ | c:\program.exe /<ключ> <файл>


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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:25 18-03-2008
    SelenaNight



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Нужно на ftp периодически класть маленький файлик
    Сделала вроде все как здесь описывалось ранее

    Код:
    ftp -s:resynch.txt

    resynch.txt:

    Код:
    open ftp.chat.ru
    my_log
    my_pas
    literal CWD /
    literal TYPE A
    literal PASV
    put 12.txt
    quit

    но получаю в ответ:

    Код:
    500 Unable to service PORT commands

    причем и в случае get тоже
    Что это такое и как бороться? Помогите плиииз...

    Всего записей: 335 | Зарегистр. 27-02-2006 | Отправлено: 22:29 18-03-2008
    HW2yS

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Nagual Спасибо большое !
    оба батника работают на ура
    правда в лог нечего не пишется но это ерунда главное что bat  
    перестал зависать при ошибках  
    а отвязать от папки "C:\_sysop\win2k3_SP2_R2_vol_eng\" есть способ ?
    чтоб независимо от того куда распакован образ VM происходила регистрация ?
     
     

    Всего записей: 87 | Зарегистр. 21-11-2006 | Отправлено: 02:08 19-03-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SelenaNight
    Из-за literal PASV наверно. Попробуй или поставь на первое место, сразу после пароля, или убери вообще, не знаю, как там на chat.ru с активным-пассивным режимом дела обстоят.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 02:50 19-03-2008
    SelenaNight



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

    Цитата:
    Из-за literal PASV наверно. Попробуй или поставь на первое место, сразу после пароля, или убери вообще, не знаю, как там на chat.ru с активным-пассивным режимом дела обстоят.

    не помогло... все то же...

    Всего записей: 335 | Зарегистр. 27-02-2006 | Отправлено: 03:37 19-03-2008
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    SelenaNight
    Это из-за put и get Вместо put file напиши команду remotehelp - увидишь, какие команды сервер поддерживает. Там stor и retr вместо этого, только chat.ru как-то странно реагирует на них, долго думает и отключается. Я уже спать пошел, лень разбираться сейчас до конца, днем посмотрю еще.

    Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 05:02 19-03-2008
    alexsunn



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые подскажите лузеру как запустить одновременно к примеру 1000 раз консольную команду ping, через батник(знаний по этой теме 0.001%)?!

    Всего записей: 267 | Зарегистр. 21-12-2005 | Отправлено: 06:14 19-03-2008
    Maza Faka



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

    Код:

    @echo off
    for /l %%i in (1,1,1000) do ping 127.0.0.1

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 07:12 19-03-2008
    yonder2009

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Это первое, что я попробовал!
     
    В итоге пришлось использовать без пароля, пароль загнать я так и не смог
     

    Всего записей: 2 | Зарегистр. 18-03-2008 | Отправлено: 10:18 19-03-2008
    sdaww

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

    Всего записей: 89 | Зарегистр. 17-01-2007 | Отправлено: 11:01 19-03-2008
    Elroir



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

    Цитата:
    Можно ли скриптом добавлять системные переменные?

    В Win2003 и в Resource Kit-е (если не ошибаюсь) есть утилита setx
    Системные переменные хранятся в реестре, поэтому можно изменять/добавлять их напрямую внося изменения в реестр (например, командой reg)

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

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 11:55 19-03-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 101 102 103

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 4
    evle (19-03-2008 19:44): Лимит страниц.
    Задачи на bat-файлах 5


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru