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

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

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

vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Nagual



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

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

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

  • Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 12:28 19-03-2008 | Исправлено: Nagual, 01:02 24-09-2008
    dimpase

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    ВСЕ!Проблема решена!
    Скачал архив с http://home.online.no/~tjaberg/gsar121.zip.
    Все работает.Вроде
    Еще раз спасибо.
     
     
    Добавлено:
    ДААА!!!Все работает как надо.Теперь доделаю наконец то!!!

    Всего записей: 130 | Зарегистр. 29-09-2008 | Отправлено: 10:20 03-10-2008
    Necronicus



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

    Цитата:
    XCOPY "C:\Update"\*.* H:\Update\ /d /s /i /y
     
    "/y" для подтверждения замены файтов, меняет только если они изменялись, если нет не копирует и оставляет старые.  

     
    А какой Ключ, убрать что бы всё копировалось не смотря на то есть там новое или старое.
    или он пробегает по всем деректориям вложенным и сверяет файлы ?
     
    Мне не добавить Yes нужно было, а узнать копирует он всё или нет. Потому что может быть файлы по дате такие-же а что-то изменилось или по размеру даже такие. а то как-то быстро операция проходит мгновенно. волнуюсь.

    Всего записей: 314 | Зарегистр. 05-05-2006 | Отправлено: 10:43 03-10-2008
    Kalbasnik



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Necronicus
    ХЗ, вроде копирует все. Проверял на *.txt , он там 1кб весит менял содержимое и нормуль было. Я в этом не резбираюсь, просто себе подобное когдато делал
    А ключ походу добавить надо а не убрать.

    Всего записей: 40 | Зарегистр. 26-02-2008 | Отправлено: 11:08 03-10-2008 | Исправлено: Kalbasnik, 11:44 03-10-2008
    dimpase

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ---
    01MDM
    БЛИН!
    А почему если строку в 1.txt меняешь в html не меняется?? У gsar стоит же параметр менять строку -r!!
    А он у меня либо не меняет вообще,потому как не может найти такую строку:
    @echo off  
    setlocal  
    chcp 1251 1>nul  
    for /f "tokens=2 delims=>" %%i in ('type 1.txt ^| findstr /I "ID=25"') do set "field=%%i"  
    gsar -s"<td ID=25>" -r"<td ID=25>%field%" -o 1.html
    Я его тут малость изменил,только два ключа добавил.
    Убрал после ...gsar -s"<td ID=25>,- </td>чтобы он искал только этот параметр <id=25>
    и заменял всю строку, но он не заменяет а добавляет.А в том варианте который вы мне предлогали <TD ID=25>25</TD>,-после присваения ему значения там будет же уже другое поле!Он это поле и не может найти, чтобы поменять значения! А допустим изменится телефон у какого-то юзера?Он же не поменяет!
    ---

    Всего записей: 130 | Зарегистр. 29-09-2008 | Отправлено: 11:34 03-10-2008
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Хей, люди! Ну подскажите что-нибудь по каталогам
     
    Подробнее...

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 11:38 03-10-2008
    yurkesha



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

    Всего записей: 2704 | Зарегистр. 15-12-2003 | Отправлено: 12:04 03-10-2008 | Исправлено: yurkesha, 12:06 03-10-2008
    cluster

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ну вот сделал батник:
    FOR /R "C:\temp" %%a in (.) DO echo %a%
     
    Но он перебирает все каталоги с подкаталогами

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 13:07 03-10-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dimpase
     
    Напиши подробней что должно получиться на выходе. Я привел только пример, т.к только догадываюсь о том что должно быть в итоге.
     
    Попробуй немного измененный вариант:

    Код:
     
    @echo off
    setlocal
    chcp 1251 1>nul
     
    :: Находим нужную строку из текстового файла и берем новое значение  
    for /f "tokens=2 delims=>" %%i in ('type 1.txt ^| findstr "ID=25"') do set "new=%%i"
     
    :: Находим нужную строку из html файла и берем значение, которое надо заменить
    for /f "tokens=3 delims=><" %%i in ('type 1.html ^| findstr "ID=25"') do set "old=%%i"
     
    :: Меняем с перезаписью html
    gsar -s"%old%" -r"%new%" -o 1.html
     

     
    PS. Из расчета, что строка поиска в html имеет вид "пробел<tag>значение для замены</tag>"
          А в текстовом файле "<ID=25>новое значение"

    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:15 03-10-2008 | Исправлено: 01MDM, 14:19 03-10-2008
    dimpase

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    --
    решил проблему следующим образом:
    setlocal  
    chcp 1251 1>nul  
    for /f "tokens=2 delims=>" %%i in ('type 1.txt ^| findstr /I "ID=25"') do set "field=%%i"  
    gsar -s"<td ID=25></TD>" -r"<TD ID=25>%field%</TD>" -o 1.html  
    for /f "tokens=2 delims=>" %%i in ('type 1.html ^| findstr /I "ID=25"') do set "field_2=%%i"  
    for /f "tokens=2 delims=>" %%i in ('type 1.txt ^| findstr /I "ID=25"') do set "field_3=%%i"  
    gsar -s"<TD ID=25>%field_2%" -r"<TD ID=25>%field_3%" -o 1.html  
     
     
    pause
     
    подскажи, может как по легче можно замутить?

    Всего записей: 130 | Зарегистр. 29-09-2008 | Отправлено: 14:16 03-10-2008
    01MDM



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    cluster
     
    А нужно без подкаталогов? тогда

    Код:
     
    for /d %%i in (C:\temp\*) do echo %%i
     


    Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 14:27 03-10-2008
    DOStavun



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Вообщем есть задача многоранговая сеть (с контролером домена и файловым сервером)???
    На файловом сервере расположились папки пользователей.  
    Необходимо чтобы они подружались из домена с помощью bat скрипта --- ниже---
    и есть vbs скрипт который должен запускаться для переименования всех дисков, так вот последний не делает этого??? Что то не правильно!? Вернее он не все диски переименовывает! В последнем скрипте продолжение все буквы и все имена я просто не стал его полностью выкладывать!
    -----------------------------------------------------------------------------------
    echo off
    if exist Z:\*.* net use Z: /delete \\nas\logfile$\%computername%.log
    if exist Y:\*.* net use Y: /delete \\nas\logfile$\%computername%.log
    if exist X:\*.* net use X: /delete \\nas\logfile$\%computername%.log
    if exist W:\*.* net use W: /delete \\nas\logfile$\%computername%.log
    if exist V:\*.* net use V: /delete \\nas\logfile$\%computername%.log
    if exist U:\*.* net use U: /delete \\nas\logfile$\%computername%.log
    if exist T:\*.* net use T: /delete \\nas\logfile$\%computername%.log
    if exist S:\*.* net use S: /delete \\nas\logfile$\%computername%.log
    if exist R:\*.* net use R: /delete \\nas\logfile$\%computername%.log
    if exist Q:\*.* net use Q: /delete \\nas\logfile$\%computername%.log
    if exist P:\*.* net use P: /delete \\nas\logfile$\%computername%.log
    if exist O:\*.* net use O: /delete \\nas\logfile$\%computername%.log
    if exist N:\*.* net use N: /delete \\nas\logfile$\%computername%.log
    if exist M:\*.* net use M: /delete \\nas\logfile$\%computername%.log
    if exist L:\*.* net use L: /delete \\nas\logfile$\%computername%.log
    if exist K:\*.* net use K: /delete \\nas\logfile$\%computername%.log
     
    net use Z: \\nas\PROGRAMS$ /u:administrator 111111 >>\\nas\logfile$\%computername%.log
    net use Y: \\nas\Multimedia$  /u:administrator 111111 >> \\nas\logfile$\%computername%.log
    net use T: \\nas\Total$  /u:administrator 111111 >> \\nas\logfile$\%computername%.log
    net use O: \\nas\Free  /u:administrator 111111 >> \\nas\logfile$\%computername%.log
     
    cscript.exe \\nas\logfile$\xxxx.vbs
     
    ------------------------------------------------------------------------------------------------------
    mDrive = "T:\"
    Set oShell = CreateObject("Shell.Application")
    oShell.NameSpace(mDrive).Self.Name = "Общее"
     
    mDrive = "X:\"
    Set oShell = CreateObject("Shell.Application")
    oShell.NameSpace(mDrive).Self.Name = "Backup"
     
    mDrive = "Y:\"
    Set oShell = CreateObject("Shell.Application")
    oShell.NameSpace(mDrive).Self.Name = "Мультимедиа"
     
    mDrive = "Z:\"
    Set oShell = CreateObject("Shell.Application")
    oShell.NameSpace(mDrive).Self.Name = "Программы"

    Всего записей: 4 | Зарегистр. 30-09-2008 | Отправлено: 16:04 03-10-2008 | Исправлено: DOStavun, 16:07 03-10-2008
    Glomen

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Поискал но не нашел.
     
    Есть exe  файл , при запуске требующий нажатия пробела , либо любой клавиши на клавиатуре.
     
    Вопрос: Как из bat файла передать этому exe нажатие  пробела либо другой клафиши ?

    Всего записей: 18 | Зарегистр. 26-07-2006 | Отправлено: 16:05 03-10-2008
    dimpase

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    01MDM
    Впринцепе вопрос решен , но сталкнулся с другой проблемой, теперь у меня батник путает мой ID, как задать чтобы спомощью этой команды или какой другой он искал точное совпадение?допустим надо найти строку с ID=1 и вставить туда 1001, он вставляет самый последний найденный с еденицей файл например 1999 или там 1199.
    Заранее еще раз спасибочки!

    Всего записей: 130 | Зарегистр. 29-09-2008 | Отправлено: 16:24 03-10-2008
    KapralBel



    Platinum Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    dimpase
    Включай в FIND - поле идентификатора разделитель
     
    FIND "ID=1 "

    Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:37 03-10-2008
    VidelSamogO



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, как запустить процесс из под одного CPU? Или как передать уже запущенный процесс определённому ядру.

    Всего записей: 764 | Зарегистр. 16-08-2008 | Отправлено: 04:32 04-10-2008
    cluster

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

    Цитата:
    for /d %%i in (C:\temp\*) do echo %%i

    Да. Спасибо большое.
    А кто-нибудь знает, почему XCACLS.VBS работает только с объектами на сетевых дисках?
     
    Тестирую на такой команде:
    cscript xcacls.vbs user1 /G DOMAIN\user1:F /O DOMAIN\user1/I ENABLE

    Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 10:52 04-10-2008
    Elroir



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

    Цитата:
    как запустить процесс из под одного CPU? Или как передать уже запущенный процесс определённому ядру

    У CMD такой функциональности нет.

    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 15:50 04-10-2008
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    cluster
    юзай ashampoo core tuner

    Всего записей: 528 | Зарегистр. 06-01-2006 | Отправлено: 15:55 04-10-2008
    FXPELIVE

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Помогите решить такую задачу:
    надо переименовать несколько файлов вида name[1].gif в name.gif (т.е убрать из имени файла "[1]"). Заранее благодарен.

    Всего записей: 346 | Зарегистр. 27-04-2006 | Отправлено: 16:16 04-10-2008
    Elroir



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

    Код:
     
    @echo off
    for /f "tokens=1,2,3 delims=[]" %%a in ('dir /b *[1].*') do ren %%a[%%b]%%c %%a%%c
     


    ----------
    "В интернете есть все, но не всегда"

    Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:35 04-10-2008
       

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

    Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах 5
    vu1tur (04-11-2008 23:07): Задачи на bat-файлах 6


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

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2020

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru