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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    uZver



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

    Цитата:
    то есть между строк обязательно вставить пустую строку.

     

    Код:
    for /F "delims=$" %%i in (test.txt) do (
    @echo %%i >> test1.txt  
    echo. >> test1.txt
    )
     

     

    Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 10:01 21-11-2006
    Adriano86

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Какой командой можно возвратить результат работы ping? пингуется или нет

    Всего записей: 4 | Зарегистр. 02-11-2006 | Отправлено: 11:10 21-11-2006
    Desenix

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Adriano86
    ping www.ya.ru && echo 1
    если пингуется то echo 1 будет выполнено, если не пингуется то не будет
     
    а тут будет наоборот
    ping www.ya.ry || echo 1

    Всего записей: 10 | Зарегистр. 20-11-2006 | Отправлено: 11:45 21-11-2006 | Исправлено: Desenix, 11:47 21-11-2006
    Dark Tiger



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

    Всего записей: 101 | Зарегистр. 12-12-2005 | Отправлено: 14:03 21-11-2006
    knyazru

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите что не так, следующий скрипт по моей задумке должен выводить количество exe файлов в данной папке  
     
    @echo off  
    Set A=0  
    for %%f in (*.exe) do Set /A A=%A%+1  
    Echo %A%  
    echo Press any key...  
    Pause >nul  
     
    почему то всегда выводит 1

    Всего записей: 31 | Зарегистр. 09-01-2005 | Отправлено: 14:26 21-11-2006
    uZver



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

    Код:
    for %%f in (*.exe) do Set /A A+=1

     
    Добавлено:
    либо  

    Код:
    setlocal enabledelayedexpansion
    for %%f in (*.exe) do Set /A A=!A!+1

    Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 14:39 21-11-2006
    s1ayerspg

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    COPY somefile.txt "C:\Documents and Settings\All Users\Главное меню\"  
     
    После запуска проги выводится сообщение об ошибке "Системе не удается найти указанный путь" (вместо Главное меню в окне батника (точнее, после команды COPY)написана какая-то белеберда).  
    Как это исправить?  
    Если можно, приведите пример кода.

    Всего записей: 6 | Зарегистр. 20-11-2006 | Отправлено: 15:41 21-11-2006
    uZver



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    s1ayerspg
    сохрани бат-файл в dos-кодировке либо перед copy добавь строку ChCp 1251

    Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 15:53 21-11-2006
    Fenix



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

    Код:
    COPY somefile.txt "C:\Documents and Settings\All Users\ѓ« ў-®Ґ ¬Ґ-о\"

    Всего записей: 164 | Зарегистр. 08-10-2001 | Отправлено: 16:03 21-11-2006 | Исправлено: Fenix, 16:14 21-11-2006
    s1ayerspg

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    А как сохранить батник в DOS- кодировке?)) Просвятите чайника))

    Всего записей: 6 | Зарегистр. 20-11-2006 | Отправлено: 16:25 21-11-2006
    uZver



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

    Цитата:
    перед copy добавь строку ChCp 1251  


    Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 16:31 21-11-2006
    Elroir



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

    Код:
     
    @echo off  
    setlocal enabledelayedexpansion  
    FOR %%a IN (C:\1\new\*.xls) DO (
    set tmp=%%~ta  
    set tmp=!tmp:~0,10!  
    if "!tmp!" NEQ "%DATE%" (  
    pushd %%~pa  
    del "%%a"  
    popd  
    )  
    )  
     

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 18:40 21-11-2006
    s1ayerspg

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    работаю в Блокноте и EditPlus.
    Но там Дос-кодировки вроде бы нету

    Всего записей: 6 | Зарегистр. 20-11-2006 | Отправлено: 21:36 21-11-2006
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Как я понимаю, через rundll32.exe осуществляется установка файлов *.inf, но как я могу вручную установить файл, не используя пункт у этого файла?
     
    Т.е, нажав правой кнопкой мышки по файлу с расширенишем *.inf, мы видим пункт "Установить", в реестре выполняется следующее действие:
     

    Код:
    %SystemRoot%\System32\rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 %1

     
    Вот я и хотел сделать тоже самое, но вместо %1 подставить имя (и путь по необходимости) файла... но это не срабатывает, выскакивает окошко с сообщением что установка не была выполнена (что то в этом роде) - нажав на пункт в меню, всё нормально устанавливается (т.е файл установочный), а вручную ни как
     
    Внимание вопрос: "Как батником устанавливать определённые файлы с расширением *.inf, задав имя и путь к нужному файлу?"
     
    П.С.
    Если надо, могу выложить файл который нужно установить... просто сейчас не с дома пишу.

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 21:57 21-11-2006
    s1ayerspg

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кстати... подскажите НОРМАЛЬНУЮ программу, для компиляции BAT- файлов.
    Скачивал разные: одни помимо exe- файла создают еще какие-то тмп'шные, другие вообще команды внутри bat-файла не хотят выполнять (в то время как в обычном батнике все работает).
    Может, кто знает хорошую прогу?

    Всего записей: 6 | Зарегистр. 20-11-2006 | Отправлено: 22:30 21-11-2006
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    s1ayerspg
    http://forum.ru-board.com/topic.cgi?forum=62&topic=6156&start=1900#11

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 22:38 21-11-2006
    Charm1

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
     
    @echo off    
    setlocal enabledelayedexpansion    
    FOR %%a IN (C:\1\new\*.xls) DO (  
    set tmp=%%~ta    
    set tmp=!tmp:~0,10!    
    if "!tmp!" NEQ "%DATE%" (    
    pushd %%~pa    
    del "%%a"    
    popd    
    )    
    )    
     
    Все равно удаляет все файлы
    какая я то заколдованная задача

    Всего записей: 9 | Зарегистр. 17-11-2006 | Отправлено: 07:08 22-11-2006
    uZver



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

    s1ayerspg

    Цитата:
    А как сохранить батник в DOS- кодировке?

    в блокноте наверное нельзя.  
    а в EditPlus.(взял тут - http://www.editplus.com, может не он ) - сохранить как - рядом с encoding кнопку с [...] и добавить формат cyrilic (DOS) 866, после чего выбрать этот формат из списка для сохранения.

    Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 10:06 22-11-2006 | Исправлено: uZver, 10:08 22-11-2006
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите консольную утилитку для выполнения скриптов на удалённой машине

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 10:50 22-11-2006
    topic

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Charm1
     
    @echo off
    setlocal enabledelayedexpansion
    FOR %%a IN (C:\1\new\*.xls) DO (
    set tmp=%%~ta
    set tmp=!tmp:~0,8!
    if "!tmp!" NEQ "%DATE:~3,6%%date:~-2%" (
    pushd %%~pa
    del "%%a"
    popd
    )
    )
    Это у меня работает нормально, оставляет файл с сегодняшней датой
    а этот  
    @echo off    
    setlocal enabledelayedexpansion    
    FOR %%a IN (C:\1\new\*.xls) DO (  
    set tmp=%%~ta    
    set tmp=!tmp:~0,10!    
    if "!tmp!" NEQ "%DATE%" (    
    pushd %%~pa    
    del "%%a"    
    popd    
    )    
    )
    Рубит все

    Всего записей: 25 | Зарегистр. 31-01-2006 | Отправлено: 10:59 22-11-2006
       

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