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

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

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!
Описание: Программа под DOS, есть возможность вывода документов на печать ч/з Excel с помощью батника:
 
@echo off
call C:\Progra~1\Micros~1\Office\excel.exe %1  
 
Проблема: папка Office может быть Office, Office10, Office11, а также если ОС переустанавливали один раз, то - C:\Progra~2\Micros~1\Office\excel.exe, если два, то - C:\Progra~3\Micros~1\Office\excel.exe. Если Офис переустанавливали один раз (или установлен FrontPage), то - C:\Progra~1\Micros~2\Office\excel.exe и т.д. Также папка Program Files может быть переименована, да и вообще находиться на разделе Х:\ .
 
Задача: написать батник с относительным путем к excel.exe, что-то типа:
 
call %OFFICE%_PATH%\excel.exe %1 (не работает, наверное и не должен )  
 
Спасибо
 
 

Всего записей: 3454 | Зарегистр. 21-01-2002 | Отправлено: 17:07 28-12-2005
vu1tur



Moderator-Saaber
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ignat
Так пусть операционная система сама разбирается:
start %1

Всего записей: 3690 | Зарегистр. 01-02-2003 | Отправлено: 17:52 28-12-2005
Alan Mon

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

Код:
for /L %%i in (12,-1,7) do call :GetPath %%i
goto :end
:GetPath
reg query HKLM\Software\Microsoft\Office\%1.0\Excel\InstallRoot /v Path
if errorlevel 1 goto :end
acregl.exe "%TEMP%\SetPath.cmd" OFFICE_PATH HKLM\Software\Microsoft\Office\%1.0\Excel\InstallRoot Path ""
call "%TEMP%\SetPath.cmd"
del "%TEMP%\SetPath.cmd" 2>&1
:end

После выполнения этого батника в переменной OFFICE_PATH будет лежать путь к текущему установленному офису.
 
Рядом с ним должны лежать утилиты reg.exe (в XP встроена, в 2000 - лежит в Support Tools) и acregl.exe (лежит в папке "%systemroot%\Application compatibility scripts" любой серверной ОС).
В принципе, можно и без них обойтись, но сейчас лень думать.
 
Добавлено:
vu1tur


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

Всего записей: 1116 | Зарегистр. 22-07-2004 | Отправлено: 17:55 28-12-2005
jak_forest

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

Код:
 
if exist <dir name>
 

пробовал?
у меня на ХР работает.

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 18:06 28-12-2005
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

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

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