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

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

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

vu1tur (14-11-2006 16:59): http://forum.ru-board.com/topic.cgi?forum=62&topic=9040  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

hacsoft

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Задачи на bat-файлах
Вопросы, задачи и их решения по работе с командными файлами, а также сопутствующие ссылки.
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Программы » Командная строка, батники\сценарии
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Набор GNU утилит для win32
· Встроенный справочник по командам: hh ntcmds.chm
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
 
Готовые решения и частые вопросы:
· Создание листинга директорий на примере создания плейлиста
· Разименовывание переменных
· Переименовывание файлов по дате создания
· Запуск сетевого подключения
· Запуск bat файлов как сервис
· Пример выполнения команд по результату команды ping
· Использование даты на день раньше чем сегодня
 
Невозможности — что нельзя сделать с помощью командных файлов:
· изменть конфигурацию IP на удаленной машине (без помощи rcmd.exe) [добавил ALEF]
 
 
Дополняем шапку: добавляем готовые решения, полезные ссылки.
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Старая версия первого сообщения

Всего записей: 116 | Зарегистр. 18-11-2005 | Отправлено: 22:58 18-11-2005 | Исправлено: Elroir, 05:50 11-11-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
jak_forest
Все равно останется проблема посика папки "рабочего стола" ибо имя зависит от языка установленной винды
 
vserd
Какие языки в наличии, вернее сколько?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:30 23-03-2006
Vitus_Bering



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





Личная переписка (п. 2.8.2. главы VIII Соглашения по использованию). Для спасибов есть ПМ. /vu1tur/

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 18:29 23-03-2006 | Исправлено: vu1tur, 18:43 23-03-2006
StalkerXXX

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здрасте, решите еще одну задачку пожалста. Есть набор TXT файлов вида
 
 ~Version information  
 VERS.                            1.  
 WRAP.                              NO: One line per depth step  
 ~information  
 # MNEM.UNIT         DATA TYPE  INFORMATION  
 # ====.================================: ===================  
 STRT.M  
 STOP.M  
 STEP.M                          
 NULL.                        
 COMP.                         COMPANY:
 WELL.                            WELCOME: 476  
 FLD .                           FIELD:  
 LOC .                        LOCATION:  
 CNTY.                          COUNTY:  
 STAT.                           STATE:  
 CTRY.                         COUNTRY:  
 SRVC.                 SERVICE COMPANY:  
 DATE.                        LOGARIFM DATE:  
 METD.                          METHOD: RR
 ~Curve information  
 # MNEM.UNIT                   API CODE   CURVE DESCRIPTION  
 # ====.================================:====================  
 DEPT.M                                :   ѓ«гЎЁ-   
 ZZ                                   : 1  
 Z2                                    :  
 Z3                                   : 3  
 ~Parameter information block  
 # MNEM.UNIT                     VALUE       DESCRIPTION  
 # ====.================================:====================  
 ~Other information  
 # ------------------- REMARKS AREA ------------------------  
 # ==========================================================  
~A DEPTH.M     €Љ
   2592.00    139.065
   2592.20    136.525
   2592.40    133.985
   2592.60    131.445
 
и т.д.
 
Требуется из n-го количества файлов вытащить блоки строк:
 Начиная с  
  COMP.                         COMPANY:
  WELL.                            WELCOME: 476  
...
 заканчивая ...
 ZZ                                   : 1  
 Z2                                    :  
 Z3                                   : 3  
(количество строк и их названия меняются от файла к файлу)
 
Перенести их в объединенный файл, без множества пробелов между блоками строк.

Всего записей: 1 | Зарегистр. 23-03-2006 | Отправлено: 22:18 23-03-2006
strat

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
была ) задача запуска проги из авто загрузки с задержкой в 30-100 сек. сторонних прог нельзя в систему. решил батником:
for /l %%а in (1,1,100000) do rem
 
если в фоне на п3 850 то около минуты выводит слово rem. все пашет но может есть проще решение? надо было срочно, написал за 5 минут поэтому за корягу не ругайте.

Всего записей: 459 | Зарегистр. 27-12-2005 | Отправлено: 10:09 24-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
strat
 for /l %%а in (1,1,100000) do @rem

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:51 24-03-2006
monsoon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как можно вывести данные о файлах и каталогах по структуре:
Directory  Size  Date  Time            
Directory\File  Size  Date  Time
 
Пробовал использовать Forfiles.exe, но он не дает размер для каталогов и дату дает в формате YYYYMMDD

Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 12:49 24-03-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
StalkerXXX
Задачи на bat-файлах случаем не является аналогом твоей проблеммы ?
 
там ниже я приводил алгоритм решения, а KapralBel сделал батник, который реализовал данный алгоритм

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 13:28 24-03-2006 | Исправлено: jak_forest, 13:30 24-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
monsoon
Dir /s наиболее подходит под указанное задание

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:34 24-03-2006
monsoon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
dir /s ну эту команду мы знаем

Цитата:
24.03.2006  13:11       <DIR>          .
24.03.2006  13:11       <DIR>          ..
28.07.2005  20:43              370 688 AutoRun.exe
17.09.1998  20:12                   47 autorun.inf
...
и т.д.

Но формат совсем не тот.  
Это тогда нужно результат куда-то загонять, обрабатывать и потом выводить по своей структуре.

Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 14:26 24-03-2006
vserd

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
jak_forest
А дальше?
Ведь это может быть Desktop, Рабочий стол, или другое наименование. Я лично видел 4 варианта : английский, русский, немецкий и португальский. Хотя осознано могу написать только 2, русский и английский.

Всего записей: 2065 | Зарегистр. 08-05-2002 | Отправлено: 14:55 24-03-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
monsoon
Так ты ищешь готовую программу, которая так сделает?
Или хочегь написать батник?
 
Добавлено:
vserd
Тебе нужно решить задачу, для любой выпущеной локализации или количество языков строго ограничено?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 14:57 24-03-2006
monsoon



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Я бы хотел батник, поэтому и написал в этой теме.
В версии для печати что-то похожее встречается:
...
Set File=%2  
Set Size=%1  
...
только не понял как это работает и еще нужно получить дату и время.
Нашел в одном из постов пример работы с forfiles, поэтому попробовал получить результат сначала с ним.
 
Добавлено:
Разобрался.
%%~za    в цикле дает размер файла
%%~ta     в цикле дает  дату и время
есть ли параметр или что-то еще, чем можно вытащить размер папки (каталога)?

Всего записей: 1255 | Зарегистр. 30-01-2003 | Отправлено: 15:15 24-03-2006 | Исправлено: monsoon, 13:31 27-03-2006
KapralBel



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

Код:
 
@Echo Off
CSCript Get_Desktop.vbs
ChCp 1251
Call Get_Desktop.Bat
ChCp 866
Echo desktop=%desktop%
 

 
Get_Desktop.vbs

Код:
 
Set objFileSystem = WScript.CreateObject("Scripting.FileSystemObject")
set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
Set fl=objFileSystem.OpenTextFile("Get_Desktop.Bat",2,true,-2)
fl.Write "Set desktop="+strDesktop
fl.Close
 

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:21 24-03-2006 | Исправлено: KapralBel, 15:22 24-03-2006
strat

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
kаprаlbеl
не работает.
@rem не считает, и сразу запуск след строки  
 
Добавлено:
kаprаlbеl
не работает.
@rem не считает, и сразу запуск след строки

Всего записей: 459 | Зарегистр. 27-12-2005 | Отправлено: 15:22 24-03-2006
KapralBel



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

Код:
 
@Echo Off
for /l %%р in (1,1,10000) do @Echo %%p >Nul

 
но тут все зависит от скорости компа
Но лучше использовать утилиту timeout

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:34 24-03-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vserdаналогично тому что написалKapralBel, но без использования *.vbs

Код:
echo chcp 1251>11.cmd
for /f "skip=4 tokens=2,*" %%i in ('reg query "HKCU\software\microsoft\windows\currentversion\explorer\shell folders" /v desktop') do echo set desktop=%%j>>11.cmd
echo chcp 866>>11.cmd
call 11.cmd
echo %desktop%
 

у меня на XP работает отлично. chcp используется для корректного понимания русского языка
если хотишь глянуть результат: Подробнее...

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 16:42 24-03-2006
Serge2005

Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Скажите, пожалуйста, как сделать командный файл (или что?), который будет менять значения параметров в wincmd.ini:  
Mainmenu=WCMD_RUS.mnu
LanguageIni=WCMD_RUS.LNG
На:
Mainmenu=WCMD_ENG.mnu
LanguageIni=WCMD_ENG.LNG
?

Всего записей: 555 | Зарегистр. 11-02-2006 | Отправлено: 12:50 25-03-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
народ.
Необходимо с помощью батника собрать инфу о пользователях домена.
Может кто встречлся ?
 
я думал так
1.net user /domain >>user.txt
 
2.а далее for /f "tokens=1" %%i in (user.txt) do net user %%i /domain  
но тут проблема на первом шаге.
лист юзеров получается вида  
 
user1       user100
user2       user101
........       ...........
 
как можно это обойти ?
Заранее спасибо.
 
Добавлено:
может тогда кто-нибудь знает как отмести первые 7-мь строк и последние 3-и из текстового файла ?

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 21:37 26-03-2006
jak_forest

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech
в for-е есть такая весчь как "skip=3". это поможет пропустить первые сроки в файле а поповоду того, что список пользоватлей в две колони выдается:

Код:
 
@echo off
net user /domain > users.txt
for /f "tokens=1,2,3,4,5,6,7,8,9" %%i in (users.txt) do (
if not #%%i# == ## echo %%i
if not #%%j# == ## echo %%j
if not #%%k# == ## echo %%k
if not #%%l# == ## echo %%l
if not #%%m# == ## echo %%m
if not #%%n# == ## echo %%n
if not #%%o# == ## echo %%o
if not #%%p# == ## echo %%p
if not #%%q# == ## echo %%q
)
 

более красивое решение лень думать - понедельник все-таки

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 16:45 27-03-2006
VelDmi

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ИП адрес уже научился менять (18 страница). А как можно сменить имя компьютера?

Всего записей: 534 | Зарегистр. 03-12-2002 | Отправлено: 20:34 27-03-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 101

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Задачи на bat-файлах
vu1tur (14-11-2006 16:59): http://forum.ru-board.com/topic.cgi?forum=62&topic=9040


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru