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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Bat- файл не работает с файлами и директориями, в имени которых есть кириллица.
    Помогите, пожалуйста.

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



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    s1ayerspg
    Как не работает?
    Чем помочь?
    Пример bat-файла - в студию....
    Скорее всего - необходимо использовать chcp 1251 и кавычки, обрамляющие название (").

    Всего записей: 426 | Зарегистр. 23-11-2004 | Отправлено: 01:42 20-11-2006
    Charm1

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir  
    @echo off  
    setlocal enabledelayedexpansion  
    FOR %%a IN (C:\1\new\*.xls) DO (  
    set tmp=%%~ta  
    set tmp=!tmp:~0,13!  
    if "!tmp!" NEQ "%DATE%" (del "C:\1\new\%%a")  
    )  
     
    Не работает, пишет "Синтаксическая ошибка в имени файла, имени папки или  метки тома"
    Может проблема в том что имя файла 17 символов?
     
    Добавлено:
    Kirillhome
    Скорее всего - необходимо использовать chcp 1251 и кавычки, обрамляющие название (").
     
    Это как? Пример привести можешь?

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, помогите с задачкой:
    Как создать\настроить соединение по локальной сети? После установки винды оно, конечно, появляется по умолчанию как "соединение по локальной сети". Можно ли его переименовать и настроить?
    Пока переименовал вручную. По настройкам пробовал так. Скрипт не ругается, но и не работает, т.е. настроики не применяются.

    Код:
    set address name = "local-net" source = static addr = 172.16.3.2 mask = 255.255.0.0
    set address name = "local-net" gateway = 172.16.0.20 gwmetric = 1
    set dns name = "local-net" source = static addr = 172.16.0.30

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Charm1
     
    У меня вообще без кириллицы, а ошибка та же
     
    c:\1\new\1.xls
    c:\1\new\2.xls
    c:\1\new\3.xls
     
    Если  
    @echo off
    setlocal enabledelayedexpansion
    echo 1__%Date%
    FOR %%a IN (C:\1\new\*.xls) DO (
    set tmp=%%~ta
    set tmp=!tmp:~0,13!
    if "!tmp!" NEQ "%DATE%" (del "C:\1\new\%%a")
    )
    echo %tmp%
     
    То сообщения  
    1__Пн 20.11.2006
    Синтаксическая ошибка в имени файла, имени папки или метке тома.
    Синтаксическая ошибка в имени файла, имени папки или метке тома.
    Синтаксическая ошибка в имени файла, имени папки или метке тома.
    18.11.06 09:0

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Входные данные: текстовый файл temp.txt содержит N - количество строк.
    Требуется: подсчитать количество строк и в зависимости от этого количества разбить файл temp.txt на m частей типа temp1.txt, temp2.txt и т.д., причем каждая часть должна содержать L строк, за исключением последнего файла разумеется. Пример: файл temp.txt содержит 287 строк. Разбить файл на составные части по 45 строк. В итоге получится 7 текстовых файлов, 6 равной длины по строкам, а 7 - укороченный.  

    Всего записей: 156 | Зарегистр. 05-12-2002 | Отправлено: 14:57 20-11-2006
    uZver



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

    Цитата:
    подсчитать количество строк и в зависимости от этого количества разбить  

    а какая зависимость?

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Примерное содержание текстового файла:
    mc: 4564564646vfg
    mc: 76567fhg
    mc: 54656bgdfg
    и т.д.
    То есть грубо говоря разбить текстовый файл на части с примерным содержанием строк по 20-40 без всяких зависимостей - первая часть строки с 1 по 20, вторая часть с 21 по 40 и т.п.

    Всего записей: 156 | Зарегистр. 05-12-2002 | Отправлено: 16:24 20-11-2006
    s1ayerspg

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

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



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

    Код:
    setlocal enabledelayedexpansion  
    set q=0
    set N=20
    for /F "delims=   " %%i in (test.txt) do (
    set /a q+=1
    if !q! GTR !N! set /a N+=20
    @echo %%i >> test!N!.txt
    )
     

     
    вместо test.txt можно вставить %1 и запускать: split.bat file.txt

    Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 16:55 20-11-2006 | Исправлено: uZver, 16:56 20-11-2006
    Elroir



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    topic
    Charm1
    Выложите здесь результат исполнения следующего кода

    Код:
     
    @echo off
    echo Date format is "%date%"
    for %%a in (c:\1\new\*.xls) do echo "c:\1\new\%%a" - "%%~ta"
     

    Предполагается, что в c:\1\new, находятся 3 файла .xls - как у topic-а.
     
     
     
     
    Добавлено:
    cluster
    Может так:
    1. Полностью настраиваешь сеть (имена, адреса и т.д.)
    2. Командой "netsh dump > lan_script.txt", создаешь скрипт. (Если не нужно настраивать IPX, то можно убрать из скрипта часть его касающуюся).
    3. Когда надо, запускаешь его командой "netsh -f lan_script.txt".

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:18 20-11-2006 | Исправлено: Elroir, 17:33 20-11-2006
    Desenix

    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто знает, возможно ли стандартными средствами из (консоли)/(bat файла) создать VPN PPTP соединение ?

    Всего записей: 10 | Зарегистр. 20-11-2006 | Отправлено: 17:34 20-11-2006
    ssnvit

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    uZver
     
    вроде бы все великолепно, НО в частях файла получается вывод только mc: ,а дальнейшейго значения строки нет. Может что-то надо поменять в параметре delims?
    вот что на экране
    mc:
    mc:
    mc:
    и т.д.
     
    Добавлено:
    delims=$ и все заработало. Огромный поклон uZver!!!

    Всего записей: 156 | Зарегистр. 05-12-2002 | Отправлено: 18:00 20-11-2006
    topic

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
     
    Date format is "Пн 20.11.2006"
    "c:\1\new\c:\1\new\1.xls" - "19.11.06 09:08 "
    "c:\1\new\c:\1\new\2.xls" - "20.11.06 09:08 "
    "c:\1\new\c:\1\new\3.xls" - "18.11.06 09:08 "

    Всего записей: 25 | Зарегистр. 31-01-2006 | Отправлено: 18:32 20-11-2006
    Elroir



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

    Цитата:
    Синтаксическая ошибка в имени файла, имени папки или метке тома.

    Не любит команда del работать с путем в кавычках, когда она (команда) в for-е.

    Цитата:
    Date format is "Пн 20.11.2006" "c:\1\new\c:\1\new\1.xls" - "19.11.06 09:08 "

    Как я и подозревал - проблема в формате даты. Правильный код (я надеюсь):

    Код:
     
    @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
    )
    )
     

    P.S. Этот код будет работать правильно только для topic-а и тех, у кого такие же форматы %date% и %%~ta.

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
     
    Удаляет замечательно, теперь попытаюсь адаптировать под свою задачу
     
    http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=20

    Всего записей: 25 | Зарегистр. 31-01-2006 | Отправлено: 19:26 20-11-2006
    Grigormoskal

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Насчет полезных ссылок еще не добавили одну книжку назаваеться ''Командная строка Windows'' Автор Уильям Станек.  
    В ней почти 400 страниц, да когда я ее увидел тоже не думал что столько можнпо рассказать о командной стоке.
    Там подробно рассказываеться о сценариях, командах и возможности bat файлов от самого простого cls  или copy вплоть до: (написания сценариев по файловым систем впоть до RAID, мониторинг событий, управление учетными записями на локальном компе и на серваке, управление Activ Directory).
     
    От себя есше добавлю что если читать с начала и внимательно то книгу понять не сильно  сложно.  
     
    Весит книжка 16MB если у кого есть желание положить ее для всех на постояноое место проживания то скажите.

    Всего записей: 5 | Зарегистр. 29-06-2006 | Отправлено: 03:00 21-11-2006 | Исправлено: Grigormoskal, 03:03 21-11-2006
    ssnvit

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть вопрос - как сделать, чтобы исходный текстовый файл вида
     
    вапвапа77-7иявими7ви7-м
    иилтви4545ьитмисииялвяч
    ипииви554545ичпипипрпп
    иптрптртртьртртртч666иттт
     
    конвертировался в такой вид
     
    вапвапа77-7иявими7ви7-м
     
    иилтви4545ьитмисииялвяч
     
    ипииви554545ичпипипрпп
     
    и т.д., то есть между строк обязательно вставить пустую строку.

    Всего записей: 156 | Зарегистр. 05-12-2002 | Отправлено: 09:06 21-11-2006
    Charm1

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Elroir
    Вот что у меня
    Date format is "21.11.2006"
    "c:\1\new\c:\1\new\DislSur0611154343.xls" - "15.11.2006 04:34"
    "c:\1\new\c:\1\new\DislTob0611169712.xls" - "16.11.2006 09:07"
    "c:\1\new\c:\1\new\DislTob06112041439.xls" - "20.11.2006 04:14"
    "c:\1\new\c:\1\new\OtcTob0611169757.xls" - "16.11.2006 09:08"
    "c:\1\new\c:\1\new\OtcTob0611174590.xls" - "17.11.2006 04:59"
    "c:\1\new\c:\1\new\OtcTob06112041510.xls" - "20.11.2006 04:15"
    "c:\1\new\c:\1\new\OtprSur0611169557.xls" - "16.11.2006 09:05"
    "c:\1\new\c:\1\new\PribSur0611169551.xls" - "16.11.2006 09:05"
    "c:\1\new\c:\1\new\RemSur0611169545.xls" - "16.11.2006 09:05"
    "c:\1\new\c:\1\new\RemTob06112041510.xls" - "20.11.2006 04:15"
    "c:\1\new\c:\1\new\SyrDpr061120.xls" - "20.11.2006 04:39"
    "c:\1\new\c:\1\new\SyrDpr061121.xls" - "21.11.2006 06:43"
    код
    @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  
    )  
    )  
     
    Удаляет все файлы а надо что б оставил файл от текущей даты

    Всего записей: 9 | Зарегистр. 17-11-2006 | Отправлено: 09:13 21-11-2006
    tolyn77



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

    Всего записей: 1496 | Зарегистр. 07-09-2004 | Отправлено: 09:32 21-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

    Рейтинг.ru