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

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

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

vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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-файлах (часть 1)
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 16:59 14-11-2006 | Исправлено: Elroir, 04:30 26-04-2007
    TheChampion

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа, а как узнать загрузку ЦП?
     
    А еще сетевую активность. В общем, то, что выводит диспетчер задач, нужно моей программе. Через cmd или WinAPI --- неважно.

    Всего записей: 656 | Зарегистр. 25-06-2004 | Отправлено: 00:07 07-01-2007
    NIKkurer

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Помогите, автоматизировать задачку:
    есть файл scan.txt в котором хранятся названия папок, находящихся в одной папке (вида ah_my_goddess_001), всего папок 219. И есть файл jpg2gif.exe в который необходимо эти названия папок передать как параметр, примерно таким образом
    Код:
     call e:/jpg2gif.exe ah_my_goddess_001\*.jpg  
    Как все это можно реализовать на bat-файлах? Впрочем не обязательно на них... хоть как-нибудь, а то вручную в каждой папке запускать...

    Всего записей: 3 | Зарегистр. 25-09-2005 | Отправлено: 03:46 07-01-2007 | Исправлено: NIKkurer, 03:47 07-01-2007
    Maza Faka



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

    Цитата:
    В ini только такие строчки?

    Нет, есть и другие
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:29 07-01-2007
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может кто нибудь подправить бат файл автоустановки MiniNT. Вместе с Hiren's BootCD 8.7 шёл патч и в нём мне понравилось замена текста с помощью файла keyb.sys (всего то 15 кб). Первая проблема - не могу с помощью батника внести строку в скрытый файл boot.ini, в обычный нескрытый могу, а в скрытый нет... снять атрибуты не получалось. Вторая проблема - как сделать выбор пути к дистрибутиву, чтоб батник сам предложил выбор диска в дистрибутивом WindowsXP. Кодировку текста естественно сменил для просмотра.

    Цитата:
     
    @ECHO OFF
    color 3b
    echo.
    echo.
    echo ===============================================================================
    echo Перед установкой консоли вставте диск в CD,DVD-привод, и в текущем файле
    echo Автоустановка.bat впишите путь к  дистрибутиву WindowsXP,  замените вот эту
    echo строку H:\i386\winnt32.exe /cmdcons, смените букву диска на букву вашего привода  
    echo И перезапустите файл этот файл.
    echo =============================================================================ьho.
    echo.
    pause
    title Установить консоль (указать путь, отредактировав Автоустановка.bat)
    H:\i386\winnt32.exe /cmdcons
    title Копировать peldr
    copy peldr C:\
    title Установить MiniNT
    MiniNT.exe
    title копировать загрузчик в текущую папку
    copy C:\cmdcons\BOOTSECT.DAT BOOTSECT.DAT
    title пропатчить загрузчик и переименовать
    copy /y "BOOTSECT.DAT" PELDR.DAT>nul
    echo   FILE   = PELDR.DAT>temp.dat
    echo   TTL    = PE Patch For BOOTSECT.DAT >>temp.dat
    echo   SEARCH = 43 4D 4C 44 52>>temp.dat
    echo   CHANGE = 50 45 4C 44 52>>temp.dat
    copy /y keyb.sys tmpfile.exe>nul
    tmpfile /p temp.dat
    del temp.dat
    del tmpfile.exe
    title Копировать загрузчик в MiniNT
    copy PELDR.DAT C:\MiniNT\PELDR.DAT
    del PELDR.DAT
    del BOOTSECT.DAT
    echo.
    echo.
    echo ==============================================================================echo На диске С находим скрытый файл boot.ini и снимаем атрибуты только для чтения.
    echo В конец файла добавляем строку:.
    echo.
    echo C:\MiniNT\PELDR.DAT="WinPE".
    echo.
    echo а вторую строку timeout=30 заменяем на timeout=4
    echo Это время отображения меню, после окончания которого запускается OS по умолчанию 4 секунды достаточно для выбора системы.
    echo =============================================================================ьho.
    echo.
    pause
     

     
    Еще есть проблема - использую команду start для запуска *.exe-файла, но в пути к программе есть пробел  (Program Files) и путь не воспринимается полностью. Если заключить путь в кавычки, то путь тоже не воспринимается. Без команды start путь в ковычках воспринимается, но тогда следующие команды в батнике не запускаются... что делать?

    Всего записей: 4206 | Зарегистр. 03-05-2006 | Отправлено: 12:38 07-01-2007
    ViSiToR



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

    Цитата:
     использую команду start для запуска *.exe-файла, но в пути к программе есть пробел  (Program Files) и путь не воспринимается полностью. Если заключить путь в кавычки, то путь тоже не воспринимается.

     
    Попробуй до запуска проги изменить текущий каталог cd "papka progi" - или как вариант, заключить в кавычки только те пути (между \), в которых встречаются пробелы...
     

    Код:
    start c:\"Путь с пробелом"\а_это_путь_без_пробелов\proga.exe

     
    Ну или весь путь заключить в двойные кавычки два раза...
     

    Код:
    start ""c:\Путь с пробелом\а_это_путь_без_пробелов\proga.exe""

     
    А ещё как вариант, и если речь идёт о Program files, то можно либо сократить путь (progra~1), либо использовать переменную %programfiles%... хотя тоже пробелы будут .
     
    P.S
    Сокращение путей всегда надёжнее, хоть и не всегда годится...

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 13:38 07-01-2007
    fl1pp3r



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые форумчане, такой вопрос:
    Обои рабочего стола подгружаются из html файла, посередине кнопка (как в фильме Хоттабыч), щелчком по этой кнопке открывается bat в котором прописан линк на запуск winamp. При нажатии на кнопку сначала, на доли секунды открывается bat'овское окно, а потом запускается winamp. Можно что-нибудь прописать чтобы bat файл открывался в свернутом виде?

    ----------
    Не можешь изменить ситуацию, измени отношение к ней.

    Всего записей: 439 | Зарегистр. 22-11-2004 | Отправлено: 14:36 07-01-2007
    ViSiToR



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

    Цитата:
    посередине кнопка

    Посредине чего?
     

    Цитата:
    щелчком по этой кнопке открывается bat в котором прописан линк на запуск winamp

    А нельзя сделать сразу открытие этого самого линка?
     

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

    Опять таки нужно изменить способ запуска батника, что в принципе опять наводит на вопрос - а не легче ли запускать эту ссылочку прямо этой кнопкой?    
     
    Можно если html, запустить батник скрыто через VBScript...
     

    Код:
    <SCRIPT language="VBScript">
       On Error Resume Next
           Set WshShell = WScript.CreateObject("WScript.Shell")
           WshShell.Run("C:\BathFile.bat ", 0, true)
    </SCRIPT>



    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 15:55 07-01-2007 | Исправлено: ViSiToR, 15:56 07-01-2007
    GreaseOD1

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вопрос на засыпку!!!
    Пишу команду:
    net use \\host\c$ /user:administrator password
    Если пароль неправильный, то он ругается и выдает сообщение аж в три строки:
    1. System error 1326 has occurred.
    2.  
    3. Logon failure: unknown user name or bad password.
    Как можно избежать вывода на экран этих строк (если пароль или логин неправильный?)
     
    net use \\host\c$ /user:administrator password>null -- непомогает!!!

    Всего записей: 4 | Зарегистр. 07-01-2007 | Отправлено: 18:35 07-01-2007
    igor_andreev

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GreaseOD1
    "не помогает" пишется раздельно, а "nul" с одной буквой "l". И после ">nul" через пробел добавь 2>&1

    Всего записей: 1674 | Зарегистр. 08-12-2004 | Отправлено: 18:50 07-01-2007
    evle



    1 + int rand(100);
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO

    Цитата:
    Еще есть проблема - использую команду start для запуска *.exe-файла, но в пути к программе есть пробел  (Program Files) и путь не воспринимается полностью. Если заключить путь в кавычки, то путь тоже не воспринимается.

    Если прочитать start /?, можно понять, что набор символов в кавычках воспринимается как заголовок окна. Чтобы работало нормально, нужно поставить ещё одну пару кавычек:
    start "" "Путь к программе"
     
    ViSiToR

    Цитата:
    Ну или весь путь заключить в двойные кавычки два раза...  

    Так не срабатывает.
     
    fl1pp3r

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

    Шапка:

    Цитата:
    cmdow — изменение параметров и видимости дос-окна  

     


    ----------
    For every complex problem, there is a solution that is simple, neat, and wrong.

    Всего записей: 2110 | Зарегистр. 03-02-2005 | Отправлено: 19:09 07-01-2007
    GreaseOD1

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

    Цитата:
    GreaseOD1  
    "не помогает" пишется раздельно, а "nul" с одной буквой "l". И после ">nul" через пробел добавь 2>&1

     
    Не помогает - это я поспешил!! ))). Давно увлекаюсь cmd, но "2>&1" не видел!!! Что это?
    Заранее спасибо за всё!!!

    Всего записей: 4 | Зарегистр. 07-01-2007 | Отправлено: 20:49 07-01-2007
    Smitis



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

    Цитата:
    Давно увлекаюсь cmd, но "2>&1" не видел!!! Что это?

    Ну почему никто не любит читать, пользоваться поиском, думать? На предыдущей странице я об этом уже писал - где смотреть.
    http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=440#11

    Всего записей: 2582 | Зарегистр. 09-02-2003 | Отправлено: 23:55 07-01-2007
    MegaSin

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    возникла задача:
    есть файлы в папке - пусть их 10 %n%.txt
    скрипт должен пересчитать файлы и вывести что то вроде
    1 - 1.txt
    2 - 2.txt
    и т.д.
    при этом он должен создать взависимости от кол-ва файлов :install%n%
    т.е должно получится через set /p выбор не по имени файла. а по присвоенному ему номеру
    т.е выводится список  
    1 - 1.txt
    2 - 2.txt
    и вопрос "какой файл"
    я нажимаю "1" и исполюзуется файл 1.txt
    пересчитать файлы смог, вывести тоже, а с использованием не знаю как сделать
    заранее спс

    Всего записей: 25 | Зарегистр. 26-11-2006 | Отправлено: 00:27 08-01-2007
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Maza Faka
    Следующий код может не работать, если в ini файле используются спец. символы:

    Код:
     
    @echo off
    setlocal enabledelayedexpansion
    for /L %%C in (1,1,10) do (
    ping -n 1 -w 1000 192.168.0.%%C | find "TTL=">nul
    if !errorlevel!==0 set %%C=OK
    )
    del /q tmp_file 2>nul
    for /f "tokens=*" %%I in (file.ini) do call :check %%I
    if exist tmp_file (
    del /q file.ini
    ren tmp_file file.ini
    )
    goto :EOF
     
    :check
    for /f "delims==\. tokens=1,5" %%A in ("%*") do (
    if "%%A"=="SetVideoFolderPath" (
    if defined %%B echo %*>>tmp_file) else (echo %*>>tmp_file)  
    )
     

     
    Добавлено:
    MegaSin

    Цитата:
    я нажимаю "1" и исполюзуется файл 1.txt  

    Прежде всего, в начале батника пропиши:

    Код:
    setlocal enabledelayedexpansion

    После пересчета, запускай:

    Код:
     
    set 1=1.txt
    set 2=2.txt
    и т.д.
     

    а при выборе через set /p choice=, используй конструкцию:

    Код:
     
    echo !%choice%!
     

     
     
    Добавлено:
    evle

    Цитата:
    cmdow — изменение параметров и видимости дос-окна  

    У него используется что-то похожее - там консольное окно появляется на долю секунды, также как и в cmdow. Полностью скрытно запустить батник утилитой cmdow невозможно.
     
    Добавлено:
    AZJIO

    Цитата:
    Первая проблема - не могу с помощью батника внести строку в скрытый файл boot.ini, в обычный нескрытый могу, а в скрытый нет... снять атрибуты не получалось

    Это потому, что boot.ini не только скрытый, но еще и системный. Снимать аттрибуты надо так:

    Код:
    attrib -s -h boot.ini

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 00:34 08-01-2007
    AZJIO



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

    Всего записей: 4206 | Зарегистр. 03-05-2006 | Отправлено: 04:47 08-01-2007
    ViSiToR



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

    Код:
    @echo off
    Set Ext=txt
    Set FOLDER=C:\Folder
    CD "%FOLDER%"
    If Not Exist "%FOLDER%\*.%Ext%" Goto ExitError
    :Again
    Echo -----Files List-----
    For %%a In (*.%Ext%) Do Echo %%~na - %%a
    Echo.
    Echo Type FileName from list...
    Echo --------------------------
    Set /p Answer=
    If /i %Answer% == Exit Exit
    If Not Exist %Answer%.%Ext% (
    Echo You type wrong FileName, please try again...
    Ping -n 4 localhost > nul
    Cls
    Goto Again
    )
    Echo What you want to do with chousen file %Answer%.%Ext% ?
    Echo.
    Pause
    :::
    :::
    Exit
    :ExitError
    Echo Error - Files %FOLDER%\*.%Ext% wasn't found
    Ping -n 5 localhost > nul
     


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 08:13 08-01-2007
    fl1pp3r



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

    Цитата:
    Посредине чего?

    Посередине рабочего стола

    Цитата:
    А нельзя сделать сразу открытие этого самого линка?

    Нет, internet explorer начинает его скачивать

    Цитата:
    запустить батник скрыто через VBScript...  

    Не догоняю что-то если заменить href="start.bat скриптом, то картинка рабочего стола сбивается
     
    Вот код html файла:

    Код:
     
    <html>
    <head>
    <title>????????</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>
    <body marginheight="0" topmargin="0" leftmargin="0" marginwidth="0" BGCOLOR="#000000">
    <table width="1280" height="336" border="0" cellpadding="0" cellspacing="0"><tr><td><img src="C:/wp/images/genadesktop_01.jpg" width="1280" height="336"></td></tr></table>
    <table width="1280" height="326" border="0" cellpadding="0" cellspacing="0"><tr><td width="467" height="326"><img src="C:/wp/images/genadesktop_02.jpg" width="467" height="326"></td><td width="328" height="326"><a onmouseover="document.h.src='C:/wp/images/genadesktop_03-over.jpg';" onmouseout="document.h.src='C:/wp/images/genadesktop_03.jpg';" onmousedown="document.h.src='C:/wp/images/genadesktop_03-down.jpg';" href="start.bat"><img src="C:/wp/images/genadesktop_03-over.jpg" name="h" border="0"></a></td><td width="485" height="326"><img src="C:/wp/images/genadesktop_04.jpg" width="485" height="326"></td></tr></table>
    <table width="1280" height="336" border="0" cellpadding="0" cellspacing="0"><tr><td><img src="C:/wp/images/genadesktop_05.jpg" width="1280" height="362"></td></tr></table>
    </body>
    </html>


    ----------
    Не можешь изменить ситуацию, измени отношение к ней.

    Всего записей: 439 | Зарегистр. 22-11-2004 | Отправлено: 15:26 08-01-2007 | Исправлено: fl1pp3r, 15:27 08-01-2007
    alankz

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

    Всего записей: 34 | Зарегистр. 05-03-2006 | Отправлено: 16:20 08-01-2007
    drondo



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alankz
    такое нельзя, bat файл это обычный текстовый файл. единственное что возможно-открыть любым hex редактором экзешник, скопировать содержимое в файл, и сохранить с расширением exe. Но думаю это не то что тебе нужно

    Всего записей: 461 | Зарегистр. 28-10-2005 | Отправлено: 17:08 08-01-2007
    Maza Faka



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

    Цитата:
    Еще есть проблема - использую команду start для запуска *.exe-файла, но в пути к программе есть пробел  (Program Files) и путь не воспринимается полностью. Если заключить путь в кавычки, то путь тоже не воспринимается. Без команды start путь в ковычках воспринимается, но тогда следующие команды в батнике не запускаются... что делать?

    Попробуй так: start /d"C:\Program Files\Program\" program.exe

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 17:44 08-01-2007 | Исправлено: Maza Faka, 17:45 08-01-2007
       

    Страницы: 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-файлах 2
    vu1tur (27-04-2007 11:55): продолжаем в теме «Задачи на bat-файлах 3»


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru