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

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

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

vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117

   

vu1tur



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

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

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

  • Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 11:37 26-05-2009 | Исправлено: TechnicsKuzya, 13:53 27-12-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ashtroy
    Попробуй сначала без erase , если показывает правильно, значит дело в erase, если неправильно, значит выкладывай сюда скопиованное своё из батника. чтоб посмтреть ошибку.
    команнду echo тоже убирать надо.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:20 30-07-2009 | Исправлено: king_stiven, 11:22 30-07-2009
    ashtroy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Я пробовал сначала все как указанно в исходном варианте, окно с сообщением о сроке в 30 дней выводится
     
    vbs я не трогал, играю с батником
     
    вот примерно что получилось
     
     
     
    Добавлено:
    @echo off  
    for %%a in (*.*) do (  
        set "fgh=%%a"  
        call :compare_crdate  
    )  
    goto :eof  
    :compare_crdate  
    cscript timediff.vbs "%fgh%"  
    if %errorlevel% gtr 30 echo "%fgh%" erase

    Всего записей: 1210 | Зарегистр. 09-09-2006 | Отправлено: 11:23 30-07-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    if %errorlevel% gtr 30 erase "%fgh%"
    не забудь ключи к erase , смотри справку по ней

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:39 30-07-2009
    ashtroy



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    @echo off  
    for %%a in (*.*) do (  
        set "fgh=%%a"  
        call :compare_crdate  
    )  
    goto :eof  
    :compare_crdate  
    cscript timediff.vbs "%fgh%"  
    if %errorlevel% gtr 30 erase /Q /F "%fgh%"  
     
    не стирает
     
     с -q -f тоже не стирает

    Всего записей: 1210 | Зарегистр. 09-09-2006 | Отправлено: 11:55 30-07-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    убери @echo off в конце поставь pause, запусти батник, скопируй и выкладывай сюда.
    Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!  

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 12:15 30-07-2009 | Исправлено: king_stiven, 12:18 30-07-2009
    wolf0425



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven ключи к erase там ни при чем - %errorlevel% почему-то всегда равен нулю
    проверьте timediff.vbs что-ли, может при выносе на форум чего глюкнуло

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:22 30-07-2009 | Исправлено: wolf0425, 12:34 30-07-2009
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    wolf0425
    у меня не равен нулю, да и у игоря_андреева, чей батник я привёл-тоже.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 12:27 30-07-2009
    wolf0425



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

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 12:39 30-07-2009 | Исправлено: wolf0425, 13:11 30-07-2009
    DeadAnarchist

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите пожалуйста, как с помощью bat файла вызвать диалоговое окно свойства необходимого файла???
     
    а так же возможно ли определенному файлу без открытия свойсв - безопастность присвоить полный доступ для группы администраторы полный доступ???

    Всего записей: 53 | Зарегистр. 13-09-2008 | Отправлено: 14:08 30-07-2009 | Исправлено: DeadAnarchist, 14:10 30-07-2009
    Upek

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Может вдруг кому пригодится, скрипт для определения даты создания файла, вне зависимости от региональных настроек.
    %file1% - файл у которого надо узнать дату.
    dl - переменная со временем
    Вывод даты в формате: 20090729124021(YYYYMMDDHHNNSS)

    Код:
     
    echo set file = CreateObject("Scripting.FileSystemObject").GetFile(WScript.Arguments.Item(0)) >df.vbs
    echo s=Cstr(Year(file.DateCreated))+Cstr(Right("00" ^& Month(file.DateCreated),2))+Cstr(Right("00" ^& Day(file.DateCreated),2))+Cstr(Right("00" ^&Hour(file.DateCreated),2))+Cstr(Right("00" ^&Minute(file.DateCreated),2))+Cstr(Right("00" ^&Second(file.DateCreated),2)) >>df.vbs
    for /f "delims=" %%a in ('cscript //nologo df.vbs %file1%') do set dl=%%a
     

    Всего записей: 22 | Зарегистр. 08-07-2006 | Отправлено: 14:38 30-07-2009 | Исправлено: Upek, 14:45 30-07-2009
    Joo1z



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    DeadAnarchist
    По второму вопросу - subinacl /file %path% /grant="DOMAIN\Domain Admins"=F

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 14:48 30-07-2009
    DeadAnarchist

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

    Цитата:
    subinacl

    точно так называется????
    у меня нет такого файла

    Всего записей: 53 | Зарегистр. 13-09-2008 | Отправлено: 14:54 30-07-2009 | Исправлено: DeadAnarchist, 15:06 30-07-2009
    Joo1z



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

    Всего записей: 123 | Зарегистр. 17-02-2009 | Отправлено: 16:14 30-07-2009
    KapralBel



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

    Цитата:
    точно так называется????
    у меня нет такого файла

    Входит в состав Windows Resource Kit
    http://download.microsoft.com/download/8/e/c/8ec3a7d8-05b4-440a-a71e-ca3ee25fe057/rktools.exe

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 17:05 30-07-2009
    TX86

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Мне дали написать простенький Bat - файл:  
    Разработать командный файл,который будет выполнять след. задачу  
    в цикле с интервалом в 60 сек проверять наличие файла в каталоге с:\01\ с именем test.txt. При наличии файла отправить сообщение на ПК R02 с текстом "Есть файл" и продолжать проверку.  
    На вашем форуме мне помогли  
    @echo off  
    :slabel1  
    if exist "c:\01\test.txt" (msg * /time:59 /server:R02 /W "Есть файл!")  
    ping -w 1000 -n 61 127.0.0.1  
    goto:slabel1  
     
    Но сообщение которое выводится не на русском,а на каких то непонятных символах
    Мне еще нужно использовать для поcылки сообщения Net send,а для цикла Pause,sleep (или еще что то другое)
    Заранее спасибо!

    Всего записей: 7 | Зарегистр. 24-07-2009 | Отправлено: 13:49 31-07-2009
    scensored



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Слова "Есть файл!" напишите в DOS режиме.  
    Откройте файл Far'oм (F4) поменяйте режим на DOS (F8) и будет нормальным русским языком отправлять.

    Всего записей: 179 | Зарегистр. 22-10-2007 | Отправлено: 15:45 31-07-2009
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    всем привет.
    подскажите пожалуйста как организовать цикл в моём случае ?
    есть url.txt - задача пройтись по нему и после выкачивания конкретного url над файлом лога произвести кое какие манипуляции и затем по следующему url

    Цитата:
     
    for /f "tokens=1" %%i in (url.txt) do curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --include --output log.txt %%i

    то что я привёл работает и проверяет url по списку и не проходит дальше.
    а как мне сделать что бы выполнялось:

    Цитата:
    curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --include --output log.txt %%i
    command 1
    command 2
    command 3
    curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --include --output log.txt %%i

    ...
    спасибо.
     
    Добавлено:
    и ещё такой момент
    если список url - представлен в виде  
    http://www.mikrotik.com/thedude.php - как из него получить http://www.mikrotik.com
    т.е. начиная с 8-го символа отрезать всю концовку с того места где встречаем первый /
     
     
     
    Добавлено:
    с циклом вроде помогло вот что  

    Цитата:
     
    :START
    for /f "tokens=1" %%i in (url.txt) do curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --include --output log.txt %%i  
    GOTO :NEXT
    :NEXT
    command1
    command2
    GOTO :START
     

     
    с преобразованием URL вопрос всё ещё открытый.
     
    Добавлено:
    ещё вопрос - как из вот этой строчки
     

    Цитата:
    for /f "tokens=1" %%i in (url.txt) do curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --include --output log.txt %%i  
     

     
    получить этот самый %%i что бы сделать так
    set url=%%i
     
     
    пробовал делать наоборот

    Цитата:
     
    ::
    set for /f "tokens=1" %%i in (url.txt) do set url=%%i & GOTO :NEXT
     
    ::
    :NEXT
    ::
    ::
    curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --include --output log.txt %url%
     

    но тогда ошибка в первой строчке.
     

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 01:40 01-08-2009 | Исправлено: slech, 02:45 01-08-2009
    smirnvlad

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

    Цитата:
    но тогда ошибка в первой строчке.  

    for используется без set
     
    Подробнее...
     
    TX86

    Код:
     
    @set @x=0 /*
    @echo off
     
    :s
      if exist "c:\01\test.txt" (net send R02 "Есть файл!")
      cscript //nologo /e:jscript "%~f0" 60000
    goto:s
     
    goto:eof */ if(isFinite(WScript.Arguments(0))) WScript.Sleep(WScript.Arguments(0))  
     

     

    Цитата:
    Но сообщение которое выводится не на русском,а на каких то непонятных символах  

    можно воспользоваться перекодировщиком кириллицы из шапки
    Подробнее...
     

    Всего записей: 417 | Зарегистр. 31-03-2009 | Отправлено: 07:41 01-08-2009
    slech



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad
    спасибо за скриптик - но есть проблема - он обрезает в url http:// - а мен оно нужно.
    и ещё вопросик
    как можно в конце вывести

    Цитата:
     
    curl --user-agent "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)" --include --output log.txt %url%  
    echo link=%initial_url% homepage=%url% >>list.txt
     

    link - это то что из начального файла с URL
    homepage - обрезаный url - соответсвующий homepage.
     
    спасибо ещё раз.

    Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 12:56 01-08-2009 | Исправлено: slech, 13:00 01-08-2009
    TX86

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    smirnvlad,slech
    СПАСИБО БОЛЬШОЕ!

    Всего записей: 7 | Зарегистр. 24-07-2009 | Отправлено: 13:41 01-08-2009
       

    Страницы: 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 104 105 106 107 108 109 110 111 112 113 114 115 116 117

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 7
    vu1tur (25-01-2010 12:41): лимит страниц, продолжение: http://forum.ru-board.com/topic.cgi?forum=62&topic=19668


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru