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

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

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

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



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

    Всего записей: 2741 | Зарегистр. 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? Или как передать уже запущенный процесс определённому ядру.

    Всего записей: 765 | Зарегистр. 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]"). Заранее благодарен.

    Всего записей: 348 | Зарегистр. 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
    Nagual



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    FXPELIVE
    вариант
    предполагается, что символы [] только в конце файла, иначе будет работать некорректно
     
    Код:
    @echo off&chcp 1251>nul
    for
    %%a in
    (*.gif) do (
    for /f "tokens=1 delims=[" %%b in ("%%a") do (
    ren "%%a" "%%b.gif"))

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

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Elroir, Nagual
    Большое спасибо. Сработало

    Всего записей: 348 | Зарегистр. 27-04-2006 | Отправлено: 17:41 04-10-2008 | Исправлено: FXPELIVE, 17:42 04-10-2008
    dimpase

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    KapralBel
    Не понял, идентификатор это пробел чтоль?

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

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

    Цитата:
    Подскажите, пожалуйста, как запустить процесс из под одного CPU?

    Можно воспользоваться psexec.exe из набора PsTools.
     

    Цитата:
    Или как передать уже запущенный процесс определённому ядру.
    Это можно делать в PowerShell.

    Всего записей: 75 | Зарегистр. 11-12-2005 | Отправлено: 16:38 05-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.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru