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

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



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще вопрос:
как создать папку/файл с сегодняшней датой?

Всего записей: 680 | Зарегистр. 19-07-2005 | Отправлено: 19:03 05-07-2006
Yuk



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aroun
Вроде уже было.
для папки:

Код:
for /f "tokens=2-4 delims=/ " %%a in ('date /t') do md "%%c%%a%%b"


Всего записей: 1182 | Зарегистр. 02-07-2001 | Отправлено: 19:58 05-07-2006
vasiliy74



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
суть такая постоянно проводятся обновления, но скопированные файлы в дирикторию при обновлении удоляются, можно ли как либо сохранять их перечень в лог и при последующем обновлении не копировать их??

Всего записей: 289 | Зарегистр. 21-02-2006 | Отправлено: 13:37 06-07-2006
bredonosec



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

Цитата:
можно ли как либо сохранять их перечень в лог и при последующем обновлении не копировать их??
мысльь такая, проверять перед копированием на
 if exist..., then...

Всего записей: 16256 | Зарегистр. 13-02-2003 | Отправлено: 04:59 07-07-2006
vasiliy74



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

Цитата:
if exist..., then...

а дальше? что то не совсем наверно описал суть проблемы, файлов много, нужно каким либо способом их перечень зиписывать в файл и при повторном обращении на копироание проверят имеются ли они в списке или нет, если есть то копировать их не стоит эти мы увеличиваем скорость постоянного обновления.

Всего записей: 289 | Зарегистр. 21-02-2006 | Отправлено: 07:39 07-07-2006
abz



Хулиган
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vasiliy74
 
Вот как это реализовано у меня:

Код:
xcopy /d /y "C:\Documents and Settings\All Users\Application Data\Kaspersky Lab\AVP6\Bases\*.*" B:\Aids\Bases\
 
Копируются только новые и изменённые файлы. Если надо только новые, то см. xcopy /?

Всего записей: 14974 | Зарегистр. 04-11-2002 | Отправлено: 11:58 07-07-2006 | Исправлено: abz, 11:59 07-07-2006
cluster

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как можно организовать батник, который будет сообщать при запуске:
Файл с именем %name% найден.
 
--
Где %name% - только имя файла без расширения!
скажем, какой-то пользователь работает в программе. А программа создаёт временный файл (неважно какой, например treb.err). Так вот, нужно, чтобы батник вывел:
Файл с именем treb найден.

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 15:26 07-07-2006
KapralBel



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

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:33 07-07-2006
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как в переменную записать результат выполнения другой программы или команды?
Вариант с обратными кавычками не работает.
 
например

Код:
 
set var=`date /t`
echo %var%
 
выводится:
 
`date /t`
 

 
Как добиться нужного результата?

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:58 07-07-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
01MDM
Тебе нужно записать результат любой программы или конкретной date /t
Если только date /t
то попробуй
Set var=%Date%

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 16:08 07-07-2006
cluster

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

Цитата:
Т.е надо вывести сообщение если имеется любой файл с заданным именем, но любым расширением?

Наоборот. Знаем расширение, а надо вывести имя. Файл с таким расширением в каталоге будет один. Вроде написал

Код:
for /f %%i in ('dir *.err /B %%q') do set name=%%i
echo Имя: %name%

Только с расширением. Не знаете, как без него?

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 16:10 07-07-2006 | Исправлено: cluster, 16:13 07-07-2006
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
cluster
Тогда ясно
Можно написать чуть легче

Код:
For %%a In (*.err) Do Echo %%a

 
Добавлено:

Цитата:
Только с расширением. Не знаете, как без него?

Т.е. надо вывести имя файла без расширения?
Код:
 For %%a In (*.err) Do Echo %%~na

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

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

Цитата:
For %%a In (*.err) Do Echo %%a

Просто мне надо было использовать это имя файла в последующем. Поэтому понадобилось присвоение.

Цитата:
Do Echo %%~na

Именно. Пасиба

Всего записей: 1720 | Зарегистр. 21-11-2003 | Отправлено: 17:32 07-07-2006
PA3BED4UK

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить 2 следующие задачи:  
Нужно объеденить 2 консольные команды в  1 ярлык:
1)
Код:
"E:\Games\Hitman Blood Money\asr.exe" -r "E:\Games\Hitman Blood Money\HitmanBloodMoney.exe" и "E:\Program Files\DAEMON Tools\daemon.exe" -securom on -mount 0,"E:\Games\Hitman Blood Money\Hitman blood money\x200x-hbm.mds"

2)
Код:
"E:\Program Files\CureROM\CureROM.exe" -launch "e:\Program Files\CureROM\Profiles\HitmanBloodMoney.crp" и "E:\Program Files\DAEMON Tools\daemon.exe" -securom on -mount 0,"E:\Games\Hitman Blood Money\Hitman blood money\x200x-hbm.mds"

Всего записей: 67 | Зарегистр. 11-06-2006 | Отправлено: 17:57 07-07-2006
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
 
Для любой команды, date /t - пример.
Искал, но не нашел ничего по данному вопросу. Как это сделать если вывод команды направить во временный файл, а из него уже взять значение для переменной?

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 07:54 08-07-2006
Refugee

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
for /f "tokens=*" %%i in ('date /t') do set SDATE=%%i

Всего записей: 513 | Зарегистр. 31-03-2004 | Отправлено: 13:35 08-07-2006
01MDM



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

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:26 08-07-2006
eubulos

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возникла довольно странная задача, решения которой не получается найти. Итак, дано: Windows, директория "А" с большим количеством однородный файликов. Задача: раскидать файлики по директориям внутри директории "А" в количестве, скажем 200 штук на директорию. Т.е., например, из директории с файлами в количестве 10000 тысяч должно быть 50 директории с 200 файлами в каждой. Может это как-то можно сделать с помощью bat-файлов? Есть идеи?

Всего записей: 26 | Зарегистр. 22-04-2006 | Отправлено: 18:30 09-07-2006 | Исправлено: eubulos, 18:31 09-07-2006
bredonosec



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

Цитата:
Может это как-то можно сделать с помощью bat-файлов?  
- (чисто теоретически) цикл счетчика в программу воткнуть? Типа, копируем первый файл, добавляем к пеерменной еденицу, если переменная больше 200, создаем новую директорию, если нет - копируем следующий..  

Всего записей: 16256 | Зарегистр. 13-02-2003 | Отправлено: 18:42 09-07-2006
eubulos

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

Всего записей: 26 | Зарегистр. 22-04-2006 | Отправлено: 19:59 09-07-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