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

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



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ignat
Прочитать параметр по умолчанию в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Excel.exe
Всегда укажет на последний установленный эксель. Прочитать можно использую reg.exe query или моим скриптом на kixtart-е в этой теме http://forum.ru-board.com/topic.cgi?forum=8&bm=1&topic=10659#1

Всего записей: 3177 | Зарегистр. 09-02-2003 | Отправлено: 00:12 29-12-2005
Ignat

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alan Mon Спасибо, но Excel из батника не запускается В чем может быть проблема? Спасибо
vu1tur

Цитата:
Так пусть операционная система сама разбирается:  
start %1

В чем разбирается?, запускается коммандная оболочка и все. Или это мы так шутим? Спасибо

Всего записей: 3454 | Зарегистр. 21-01-2002 | Отправлено: 01:00 29-12-2005
Alan Mon

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

Цитата:
Excel из батника не запускается  

А он и не должен из него запускаться. Этот батник заносит в переменную OFFICE_PATH путь к Excel.exe. А дальше уже делай с этим путем все, что тебе нужно. Ты ведь это спрашивал?

Цитата:
Задача: написать батник с относительным путем к excel.exe

Добавь в конец start %OFFICE_PATH%excel.exe %1
 
Вариант Smitis определения пути к excel.exe гораздо проще. Вот мой переделанный батник с его идеей:

Код:
acregl.exe "%TEMP%\SetPath.cmd" OFFICE_PATH "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe" Path ""  
call "%TEMP%\SetPath.cmd"  
del "%TEMP%\SetPath.cmd" 2>&1
start %OFFICE_PATH%excel.exe %1



----------
Ребята, давайте жить дружно. Кот Леопольд

Всего записей: 1116 | Зарегистр. 22-07-2004 | Отправлено: 10:06 29-12-2005 | Исправлено: Alan Mon, 11:28 30-12-2005
vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ignat

Цитата:
В чем разбирается?

в том, чем открывать файл.

Цитата:
запускается коммандная оболочка и все. Или это мы так шутим?

У меня по start filename.xls запускается excel и открывается файл. Что я делаю не так?
 
Добавлено:
перечитал вопрос...

Цитата:
call C:\Progra~1\Micros~1\Office\excel.exe %1

а в %1 что?

Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 20:51 29-12-2005
MonsterMax



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне бы такой скрипт который в XP пробегался по всем пользователям на предмет обнаружения имен и создавал на диске, например D:\ папки типа 'user1_temp' 'user2_temp' ? где user1=имя первого пользователя итд. И вносил в реестр значения путей папок temp для каждого пользователя свой.
Ну то есть на системном диске есть директория Documents and Settings внутри нее есть много папок (профилей) пользователей и у каждого внутри его профиля есть своя скытая директория temp.  
Надо сделать чтоб на диске D:\ было много temp'ов каждый из которых относился бы к определенному пользователю существующих в данной системе. Еще было бы круто чтоб доступ в свой temp был только у собственника и у администратора. Чтоб другой пользователь не смог заходить в чужой temp.
Надеюсь задачу разжевал довольно подробно.
Спасибо.
Я примерно знаю как выполнить эту задачу. Не могу понять как собрать имена пользователей и на основе их сделать папки temp.
Буду признателен за полное решение задачи.

Всего записей: 38 | Зарегистр. 08-09-2004 | Отправлено: 23:05 29-12-2005
olegupb



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
hacsoft
А насколько сложно выполнить такую задачу:
 
Допустим есть множество файлов в которых содержится нужный и ненужный текст такого формата
 
\\ ненужный текст1
    нужный текст
\\ ненужный текст2
 
 
или если все это множество слито в один файл, то соответственно выглядит так:
 
\\ ненужный текст1
    нужный текст
\\ ненужный текст2
\\ ненужный текст1
    нужный текст
\\ ненужный текст2
\\ ненужный текст1
    нужный текст
\\ ненужный текст2
и т. д.
 
Нужно сделать так чтоб нужный текст отделялся от ненужного и записывался(дописывался) в другой файл!
 
\\ ненужный текст1- значение не изменяеться
\\ ненужный текст2 - значение не изменяеться

Всего записей: 734 | Зарегистр. 09-02-2005 | Отправлено: 02:04 30-12-2005
Alan Mon

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
olegupb
Я так понял признаком "ненужности" текста является наличие в начале "\\". Если так,

Код:
for /F "tokens=1,*" %%i in (text.txt) do echo %%i | find "\\" && echo %%i%%j >> text1.txt

вытащит из файла text.txt все "ненужные" строки и запишет их в файл text1.txt, а

Код:
for /F "tokens=1,*" %%i in (text.txt) do echo %%i | find "\\" || echo %%i%%j >> text2.txt

вытащит все "нужные" и запишет их в файл text2.txt

----------
Ребята, давайте жить дружно. Кот Леопольд

Всего записей: 1116 | Зарегистр. 22-07-2004 | Отправлено: 09:51 30-12-2005
Ignat

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

Предполагаю, сама команда "вывода документа на печать" программы. Я не разработчик программы, я сопровождаю , а разработчик отписал мне, что: "При работе в рамках ЛВС Excel на всех рабочих станциях должен быть установлен по одному пути." Это на 70-ти машинах то! где я не админ, а "приходящий сопровождающий". Поэтому я здесь и прошу помощи, будучи сам несведущим

Всего записей: 3454 | Зарегистр. 21-01-2002 | Отправлено: 10:59 30-12-2005 | Исправлено: Ignat, 11:20 30-12-2005
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ignat
Т.е. тебе надо вывести на печать Экселевский файл, при условии того что сам Эксель установлен по разным путям?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:11 30-12-2005
vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ignat

Цитата:
Предполагаю, сама команда "вывода документа на печать" программы. Я не разработчик программы,

ну так напиши батник:
 
echo %1
 
и узнаешь что он там передаёт

Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:05 30-12-2005
olegupb



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

Цитата:
Я так понял признаком "ненужности" текста является наличие в начале "\\".  

Нет
Признаком ненужного текста1
 есть строка которая начинаеться, например, с "Начало сегодня..." и все что находиться выше нее, а признаком ненужного текста2
 есть строка, например, "Завтра начинаеться" и все что ниже ее до (если все файлы слитые в один) строки с ненужным текстом1
 

Всего записей: 734 | Зарегистр. 09-02-2005 | Отправлено: 15:43 30-12-2005 | Исправлено: olegupb, 15:44 30-12-2005
S_Leha



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как bat-ом запустить подключение к интернету?

Всего записей: 108 | Зарегистр. 02-07-2003 | Отправлено: 11:40 31-12-2005
vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
S_Leha
rasdial /?
rasdial entryname [username [password]]

Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 12:06 31-12-2005
Sebbic

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Даже стыдно со своим вопросом сюда... Но все же подскажите, плз, почему после отработки бат файла  окно cmd остается открытым? Как сделать, что бы оно само закрывалось? Система ХР. Вот сам файл
@ECHO OFF
"C:\Total Commander XP\TOTALCMD.EXE" /I=".\Profiles\Prof\main.ini" /F=".\Profiles\Prof\ftp.ini""

Всего записей: 7 | Зарегистр. 29-11-2004 | Отправлено: 21:35 02-01-2006 | Исправлено: Sebbic, 21:41 02-01-2006
hacsoft

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Окно будет висеть, пока не закроете запущенную программу.
Что бы этого не произошло, добавь в начало 2-й строки start

Всего записей: 116 | Зарегистр. 18-11-2005 | Отправлено: 23:15 02-01-2006
Sebbic

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

Всего записей: 7 | Зарегистр. 29-11-2004 | Отправлено: 23:23 02-01-2006
giccanat9

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не работает .bat следуещего содержания
 
net use p: /delete
net use p: \\server\buh /persistent:no /yes
 
из комондной строки все ок и из autoexec.bat все работает.
Как решить задачу переназначения сетевого ресурса, т.е. для одной программы надо диск P подключить \\server1\buh, а для другой \\server2\work?

Всего записей: 6 | Зарегистр. 29-12-2005 | Отправлено: 01:33 06-01-2006
LeonSab

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день собратья по оружию! =) Посмотрел данную тему форума и волосы встали дыбом, я и представить себе не мог, что такое можно делать при помощи *.cmd. Ну и решил подкинуть еще одну задачку с которой я не могу справиться по причине малой грамотности в вопросах *.cmd и отсутсвия опыта в их разработке. А задача следующая: Есть текстовый фай в OEM кодировке следующего формата:
 
"часть имени файла 1" "дата создания" "группа"
"часть имени файла 2" "дата создания" "группа"
"строка текста" // признаком строки считается то, чо она начинается с русской буквы "В"
"часть имени файла 3" "дата создания" "группа"
"часть имени файла 4" "дата создания" "группа"
...
"строка текста"
"часть имени файла 60" "дата создания" "группа"
 
Так вот нужна процедура ввиде cmd файла которая, берет из строк "часть имени файла", и ищет файл (одной из указанных папок), у которого в название присутствует данная строка например "asd67" а файл - asd67rew.exe. Найдя последний она запускает его на выполнение и выдает строку из файла на экран jкомандой echo. Встретив строку начинающуюся с "В" просто выводит ее на экран и так пока файл *.txt не кончиться.
 
 

Всего записей: 1 | Зарегистр. 06-01-2006 | Отправлено: 01:41 06-01-2006
Venchik

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

Цитата:
Проверить, есть-ли пинг на айпи. Если есть, то скачать через NETBIOS 3 файла. Если копирование всех трех прошло успешно, то заменить ими 3 файла в папке Х, предварительно переместив заменяемые файлы в папку Y.
Все это надо сделать в свернутом окне...или лучше вообще без окна, если это возможно.
Это реальная задача по обновлению антивируса McAfee по сети из расшаренной папки. Очень удобно будет поставить такой батник в планировщик.
Никто не возьмется помочь?

Всего записей: 808 | Зарегистр. 24-08-2005 | Отправлено: 02:57 06-01-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Venchik
Какая у тебя система? ХР/2003/98?
А может быть настроить антивирус на обновление из указанной папки?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 10:35 06-01-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