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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tipulatoid
    это на примере  одной строчки из rasphone.pbk
     

    Код:
    chcp 1251 > nul
    for /f "usebackq tokens=*" %%c in ("rasphone.pbk") do set p=%%c
    chcp 866 > nul
    echo %p%
     

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 19:31 11-11-2007 | Исправлено: king_stiven, 20:31 11-11-2007
    BlackCerber



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

    Всего записей: 233 | Зарегистр. 06-10-2003 | Отправлено: 00:11 12-11-2007
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Не работает В том файле кодировка не 866 и не 1251, а какая-то непонятная, Unicode, наверное
     
    Добавлено:
    BlackCerber

    Цитата:
    Подскажите как с помощью батника расшарить диски на полный доступ "гостям" из сети.

    net share /?

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 01:00 12-11-2007 | Исправлено: Tipulatoid, 01:00 12-11-2007
    KapralBel



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

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 07:47 12-11-2007
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tipulatoid
    Я испытывал на файле с кодировкой 1251, соответственно в примере измени  
    chcp 1251 > nul  на нужную кодировку. В примере в rasphone.pbk только одна строка.

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 07:48 12-11-2007
    Lutvun



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем спасибо за помощь с %date%!!!!! Есть ищё одна задачька на этот раз посложней: Есть две папки "OK" и "incomplete", в каждой из этих папок есть много подпапок в которых есть файлы разных форматов с именами типа таких basslovers_united_vid.rar~80.239.159.9_3179_3754.avi.rar и таких ~80.239.159.9_3179_3754.avi.rar. Нужно чтоб батник проверял все папки на наличие файлов и переименовывал файлы с именем оставляя в них только то, что находитса перед тыльдой, а файлы без имени которые начинаютса с тыльды перемещял в подпапку "noname" и удалял тыльду.
    П.С. Может есть какойто символ который может использоватса в именах, но не встречяетса на практике, чтоб заменить тыльду им.

    Всего записей: 286 | Зарегистр. 22-11-2005 | Отправлено: 08:46 12-11-2007
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    разбери командой for имя файла как строчку
    for /f "tokens=1,2 delims=~" %%e in ("имя файла") do echo %%e%%f
    проверь на наличие %%f, ну и так далее

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 09:15 12-11-2007
    Lutvun



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    Если бы мне это чтонибудь говорило...

    Всего записей: 286 | Зарегистр. 22-11-2005 | Отправлено: 09:43 12-11-2007
    king_stiven

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

    Цитата:
    Создание помощи по всем командам консоли 2000 и XP  

    Внимательно прочитай справку по команде for
    По крайней мере сунь имена файлов в мой пример и посмотри на результат.
    delims=~ значит разделителем в строке считается тильда
     
    tokens=1,2 значит под переменной %%e  будет считаться 1 часть имени файла
    под переменной %%f  будет считаться 2 часть имени файла
     
     

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 10:05 12-11-2007 | Исправлено: king_stiven, 10:54 12-11-2007
    CriticalError

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

    Всего записей: 45 | Зарегистр. 22-11-2004 | Отправлено: 13:19 12-11-2007
    Maza Faka



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

    Код:
     
    start /wait program1.exe
    start /wait program2.exe
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:01 12-11-2007
    Tipulatoid



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

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


    Код:
    @echo off
    start /b "" "c:\program files\microsoft office\office10\excel.exe"
    :again
    tasklist | find /i "excel.exe" >nul || goto again
    start /b "" "c:\program files\microsoft office\office10\winword.exe"
     

    Используется утилита tasklist.exe Насколько зняю, ее по умолчанию нет в Win XP Home Edition. Тогда надо ее скопировать с Prof. Edition и кинуть в папку %windir%\system32

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 14:05 12-11-2007 | Исправлено: Tipulatoid, 14:13 12-11-2007
    soulthiefer

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

    Всего записей: 40 | Зарегистр. 11-07-2006 | Отправлено: 14:42 12-11-2007
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Никто не поможет с батником - перекодировщиком из UTF-8 в ANSI? Судя по этому посту такое возможно. Только знаний у меня не хватает.
    Подробнее...

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 15:38 12-11-2007 | Исправлено: Tipulatoid, 15:58 12-11-2007
    CriticalError

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

    Цитата:
    Используется утилита tasklist.exe Насколько зняю, ее по умолчанию нет в Win XP Home Edition. Тогда надо ее скопировать с Prof. Edition и кинуть в папку %windir%\system32

     
    Большое спасибо, это работает на обычном ХР проф. Но когда я попытался запустить tasklist на XP Embedded, оказалось, что его там нет. Я скопировал tasklist.exe и еще dbghelp.dll, которую он требовал, но, тем не менее, при попытке выполнения tasklist.exe система пишет "ERROR: Provider load failure"
     
    Чего может не хватать системе для запуска tasklist?

    Всего записей: 45 | Зарегистр. 22-11-2004 | Отправлено: 16:19 12-11-2007
    Tipulatoid



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

    Цитата:
    Чего может не хватать системе для запуска tasklist?

    Понятия не имею - никогда с этой осью дел не имел. Если хорошо с английским, почитай тут

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 16:56 12-11-2007
    Lqwait

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Господа! Вот такой вопрос. Для проведения инвентаризации я сделал батник, который выполняет на удалённой машине код, с помощью которого мне на комп падает файл с конфой удалённой машины. Файл называется именем компа. Можно ли написать батник, который бы пинговал сеть от 1-го до 255 айпишника, и, если машина пингуется, тогда сопоставлял её имя и имена файлов в папке? Если такого файла нет - тогда программа запускает код для создания этого файла. И потом дальше. И так до 255. Если есть - тогда переходит к следующему айпишнику. Что-то я провозился и ничего путного не получилось... Заранее благодарю!

    Всего записей: 2 | Зарегистр. 12-11-2007 | Отправлено: 16:56 12-11-2007 | Исправлено: Lqwait, 16:57 12-11-2007
    Maza Faka



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

    Код:
     
    @echo off
     
    for /l %%a in (1,1,255) do (
       ping -n 1 -w 1000 192.168.0.%%a>nul && Call :findFile %%a
    )
    goto :eof
     
    :findFile
    rem Здесь рекурсивно ищем файл в каталоге c:\temp удалённой машины
    dir \\192.168.0.%~1\c\temp\%~1 /b /s> nul || Call :CreateFile %~1
    rem И если файл не найден, то вызываем "процедуру" :createFile
    goto :eof
     
    :createFile
    rem Здесь выполняем команды для создания файла
    ::.......
     

    Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 17:54 12-11-2007 | Исправлено: Maza Faka, 18:06 12-11-2007
    Tipulatoid



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lqwait
    Пусть в файле ip.txt записаны все ip-шники и имена компов в формате:

    Код:
     
    127.0.0.1=Comp1
    127.0.0.2=Comp2
    127.0.0.3=Comp3
    ....
    ....
    127.0.0.254=Comp254
    127.0.0.255=Comp255
     

     
    тогда:

    Код:
     
    for /f "tokens=1,2 delims==" %%a in (ip.txt) do (
       ping -n 1 -w 1000 %%a>nul && if not exist %%b.txt (
    :: здесь запуск кода для создания файла с конфой удаленной машины
       )
    )
     

     
    Батник не тестировался, но должен работать вроде Выделенное жирным - расширение файлов конфигурации. Нужно заменит на свое.
    Внимание! Возможны косяки на Win 2000.

    Всего записей: 349 | Зарегистр. 22-12-2006 | Отправлено: 18:00 12-11-2007 | Исправлено: Tipulatoid, 18:12 12-11-2007
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Tipulatoid
    Тут вопрос в том что надо узнать имя машины по ip. Как я понял. Надо использовать net view, имхо.
    А.. не заметил про файл ip=name

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:16 12-11-2007 | Исправлено: 01MDM, 18:27 12-11-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 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