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

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



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

    Цитата:
    Как можно одновременно вывести результаты и на монитор и в файл.  

     

    Код:
    ping 192.168.0.1 > temp.txt
    type  temp.txt>>fail.txt
    type temp.txt

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 16:34 28-08-2009
    sorbon

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Для родных и близких сделал универсальный образ xp на LiveDVD, с ярлыком батника на рабочем столе для ghost. Хочу перед заливкой прописать перенос папок Мои документы, Рабочий стол, в папку на диск D, при использовании переменной USERPROFILE файлы копируются с рам диска. Компьютер сестры далеко, имя профиля не знаю, знаю что в папке Мои документы фотки. Что прописать чтобы копировались с диска C: ?

    Всего записей: 5 | Зарегистр. 15-11-2008 | Отправлено: 17:35 28-08-2009
    anachrom

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А одновременный вывод? Или это нереально?
    NIKZZZZ, Ваш вариант конечно хоть и делает вывод, но с запозданием (отработанную команду) и лишней информацией в виде дублирования команды. А если вначале указать echo off то команда вообще неуказывается.

    Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 19:43 28-08-2009
    NIKZZZZ



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

    Цитата:
    А одновременный вывод? Или это нереально?  

    В свое время писал такую утилиту.
     
    Синтаксис:
    ping 192.168.0.1|FileWrite.exe temp.txt
     
    Утилита дописывает информацию в файл и одновременно выводит ее на консоль.
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:56 28-08-2009
    postullatt

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрий день. Меня интересует следующая задача.  
    Есть много изображений. Их всех нужно перевернуть против часовой стрелки і по 5 штук загнать у вордовские документи, которие нужно перед тем создать в нужном количестве. Можно ли на батнике такое зделать? Помогите плиз. Я чото пробивал но не работает. А пробивал вот так:  
     
     
    echo Ctrl D | j.jpg  
    rem ето типа оно должно перевернуть картинку  
    copy d.doc j.jpg  
    rem ето оно должно копировать картинку у ворд. воно и копирует токо у ворде не отображает ее

    Всего записей: 1 | Зарегистр. 28-08-2009 | Отправлено: 21:18 28-08-2009
    BorlandIMHO

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    postullatt
    Напрямик на батнике - нельзя. Тем более так, как Вы "пробивали"...
    Нужно искать консольный конвертер картинок типа http://www.pictview.com/pvw.htm и изучать его опции. Это для модификации картинок...
    А вот для того, чтобы всё это хозяйство запихать в ворд - это уже без VBS/VBA никак не обойтись...

    ----------
    http://www.imho.ws

    Всего записей: 2403 | Зарегистр. 12-10-2006 | Отправлено: 22:33 28-08-2009
    AgentMario

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Народ, помогите! Вобщем вот кусок кода, который обновляет  время и дату. (Он неправильный начиная с "if", нужно починить)
     
     
    @echo off
    w32tm /resync
    if errorlevel 1 msg * OMG
     
     
    Если дата различается больше чем на месяц то выбивает "Синхронизация не выполнена, поскольку запрошенное изменение слишком велико". Нужно сделать чтоб если выбивало такой эррор, то писалось сообщение.
    И как вообще узнать эти еррорлевелы?
     
     
     
     
     
    Всё уже не надо)  
     
     
    w32tm /resync
    if errorlevel == 0 msg * .....

    Всего записей: 5 | Зарегистр. 25-08-2009 | Отправлено: 03:11 29-08-2009 | Исправлено: AgentMario, 03:20 29-08-2009
    GRom V

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

    Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 09:00 29-08-2009 | Исправлено: GRom V, 09:48 31-08-2009
    kacnelbogen



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброй ночи!
    Есть текстовый файл text1 такого вида:
     
    "83.229.127.0","83.229.127.255","1407549184","1407549439","US","United States"
    "83.229.128.0","83.229.255.255","1407549440","1407582207","RU","Russia"
    "83.230.0.0","83.230.127.255","1407582208","1407614975","PL","Poland"
    "83.230.128.0","83.231.127.255","1407614976","1407680511","ES","Spain"
    "83.231.128.0","83.231.255.255","1407680512","1407713279","GB","United Kingdom"
    "83.234.0.0","83.234.255.255","1407844352","1407909887","RU","Russia"
     
    Можно ли с помощью батника найти все строки со словом Russia (или RU)
    и переписать их в новый текстовый файл text2 ?
    На скорую руку не нашёл программы с помощью которой можно это сделать.
    Спасибо.

    Всего записей: 14 | Зарегистр. 25-07-2009 | Отправлено: 00:36 30-08-2009
    NIKZZZZ



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

    Код:
    type text1.txt|find "Russia">Rus.txt

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 00:41 30-08-2009
    kacnelbogen



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ, Спасибо.
     
    А если попробовать немного усложнить ?
    Что-бы в новом файле Rus.txt строки принимали вид:
     
    83.234.0.0-83.234.255.255
     
    Вместо:
     
    "83.234.0.0","83.234.255.255","1407844352","1407909887","RU","Russia"
     
    Спасибо.

    Всего записей: 14 | Зарегистр. 25-07-2009 | Отправлено: 01:01 30-08-2009
    b2pip



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    простой вопрос: В сетевых компах есть папки, файлы в которых в процессе использования меняются (типа portablesoft). На сервере исходные папки с оригиналами.
    Нужен батник, который будет копировать с исходных папок в сетевые только те файлы, которые не сходятся по дате (ну и новые).  
    Типа xcopy d:\sourse\ \\comp1\d\destination /... Но /D копирует только новые, а нужно те, где дата не совпадает

    Всего записей: 14 | Зарегистр. 17-03-2007 | Отправлено: 01:05 30-08-2009 | Исправлено: b2pip, 01:06 30-08-2009
    NIKZZZZ



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

    Цитата:
    немного усложнить


    Код:
    echo. 2>Rus.txt
    FOR /F "usebackq tokens=1,2 delims=," %%i IN (`Type text1.txt^|find "Russia"`) DO echo %%~i-%%~j>>Rus.txt

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 01:16 30-08-2009
    kacnelbogen



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ, Благодарю, всё прекрасно работает.

    Всего записей: 14 | Зарегистр. 25-07-2009 | Отправлено: 01:29 30-08-2009
    anachrom

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    NIKZZZZ
    Спасибо, интересная и очень полезная утилита. Принцип её работы как я понял сначала вывод операции на экран, а потом по её окончанию в файл (если прервать на середине то файл пустой). Очень пригодится.
    ------------------------------------------------------------------------
    Вот еще задачка.
    Нужно запускать 1с так, что бы пользователь не смог узнать путь базы (меры предосторожности). Так вот решил сделать хитро: написать батник и перегнать его в exe.
    Код на запуск 1с такой:

    Код:
     
    "c:\program files\1cv81\bin\1cv8.exe" enterprise /f "\\192.168.0.1\1c"
     

    и все бы хорошо, если бы не закрытый сетевой путь (Windows XP Home незапоминает явки и пароли)
    как вариант

    Код:
     
    net use s: "\\192.168.0.1\1c" /user:login password
    "c:\program files\1cv81\bin\1cv8.exe" enterprise /f s:
    net use s: /delete
     

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

    Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 11:43 30-08-2009 | Исправлено: anachrom, 11:44 30-08-2009
    wolf0425



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

    Цитата:
    как можно запустить через батник так, что бы и путь не открывать и пароли незапрашивались?
    А поставить домен и назначить пользователям права на каталоги - совсем не судьба, хочется поизвращаться?

    Всего записей: 2928 | Зарегистр. 25-04-2007 | Отправлено: 14:59 30-08-2009
    NIKZZZZ



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

    Цитата:
    сначала вывод операции на экран, а потом по её окончанию в файл

    Нет, вывод одновременный, просто файл не закрывается, поэтому и пустой.

    Цитата:
    если запустить повторно

    Эту ошибку легко обойти, поставив на первое место строку

    Код:
    FOR /F "usebackq" %%i IN (`tasklist^|find /i "1cv8.exe"`) DO goto :eof

    Строка завершит выполнение батника, если 1cv8.exe загружен.

    Цитата:
    можно запустить через батник так, что бы и путь не открывать и пароли незапрашивались?

    А как именно запрашивается пароль? Может просто послать его из батника?
     
     
     
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 16:06 30-08-2009 | Исправлено: NIKZZZZ, 16:07 30-08-2009
    serg53



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сделал архивацию файлов сервака на рабочую машину. Теперь не могу придумать как оставлять нужное количество последних архивов (скажем 5). Файлы архивируются ночью на серваке, днем архивы в автомате переносятся на рабочку, поэтому в понедельник появляются пятн, субб, воск архивы.    

    Всего записей: 971 | Зарегистр. 11-12-2006 | Отправлено: 20:08 30-08-2009
    RcT

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть файл со списком строк. Этот файл подается на вход батнику который для каждой строки этого файла выполняет определенную команду. Как вывести на экран процесс выполнения работы срипта? Например чтобы были сообщения типа:
    Код:
    Выполнено (1 из 100)
    Выполнено (1 из 100)
    Выполнено (2 из 100)
    Выполнено (3 из 100)
    .....
    Выполнено (100 из 100)
     

    или что-то наподобие прогресс-бара и процент выполнения.
    Количество строк в файле посчитали, а дальше как?
    При обработке  

    Код:
     
    set /a i=0
    for /F in (%1) do (
    set /a i+=1
    echo %i%
    )
     

    выводится всегда 0.

    Всего записей: 4 | Зарегистр. 28-08-2009 | Отправлено: 20:19 30-08-2009
    NIKZZZZ



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

    Код:
    FOR /F "usebackq skip=5  tokens=* delims=" %%i IN (`dir /o-d /b "*.rar"`) DO del "%%i"

    Оставит 5 последних по дате файлов.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:23 30-08-2009 | Исправлено: NIKZZZZ, 20:26 30-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