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

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

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте у меня такая задача надо чтоб батник сделал архив файла потом передал его на ftp в определенную папку и в ней бы хранились архивы за последние  пять дней  больше ненадо  но дело в том что файл большой и архивировться и передовать наверное бедет долго и поэтому надо чтоб пользователи не выключили ком раньше времени тоесть надо их информировать на екране о том что например идет передача данных и передача данных завершена и.т.д я тут наваял немного но больше пока нерозобрался во пример моего bat файла:
 
C:\arc\rar.exe a -ag temp.rar  2.txt
IF EXIST temp*.rar ftp -s:myscript.txt
del temp*.rar

Всего записей: 59 | Зарегистр. 15-06-2005 | Отправлено: 10:36 08-08-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alroy
ну так а наличие самого окна не говорит им не очем?
ну можно еще добавить  

Код:
 
cls
@Echo ПОКА НЕ ЗАКРОЕТСЯ ОКНО КОМПЬЮТЕР НЕ ВЫКЛЮЧАТЬ  
C:\arc\rar.exe a -ag temp.rar  2.txt > log
IF EXIST temp*.rar ftp -s:myscript.txt > log
del temp*.rar > log
 

 
и ИМХО не поможет это от большой кнопки

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 11:50 09-08-2006
alroy

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uZver
да а какже проблема архивов затока за 5 дней ?? как у меня напиано их море будет ??

Всего записей: 59 | Зарегистр. 15-06-2005 | Отправлено: 12:05 09-08-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alroy
можно так выкрутится  
C:\arc\rar.exe a -agA temp.rar  2.txt > log  
т.е. будет 7 архивов(максимум), будут перезаписыватся

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 12:46 09-08-2006 | Исправлено: uZver, 12:46 09-08-2006
alroy

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uZver
Так тока 1 файл на ftp закачиваеться без даты temp3.rar и все !!!?????

Всего записей: 59 | Зарегистр. 15-06-2005 | Отправлено: 17:05 09-08-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alroy
-agA
будет создаватся temp№дня_недели.rar
да в названии даты не будет (дата создания файла - не достаточна?)
+  
чтобы не городить огород по генерации файла myscript.txt.  
могу предложить прописать в нем все temp*.т.е.
put temp1.rar
.
.
.
put temp7.rar
т.е. есть файл есть скопируется, нет - не скопируется.
 

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 17:27 09-08-2006 | Исправлено: uZver, 17:29 09-08-2006
alroy

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
uZver
большое спасибо с датой понял !!!  понял!!!!!!!!
Но тут встала другая проблема когда создался файл со следующей неделей тоесть temp3.rar
 например не за 9,08  а за 16,08 тоон на ftp temp3.rar остаеться за 9,08 Как тут быть??? помоги ???

Всего записей: 59 | Зарегистр. 15-06-2005 | Отправлено: 17:50 09-08-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
alroy
при копировании на ftp дата создания обновляется на дату копирования. (не знаю зависит ли это от настроек фтп-сервера или просто такая реализация протокола/клиента )
так что если файл за 16.08 скопировать 16/08 и на ftp будет за 16.08. (не важно был ли там файл с другой датой или нет)

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 09:06 10-08-2006 | Исправлено: uZver, 09:22 10-08-2006
isem



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте.
Можно ли батом сделать так, чтоб в текстовом файле найти строку с заданім текстом и все что віше єтой строки удалить?
Спасибо

Всего записей: 81 | Зарегистр. 22-07-2005 | Отправлено: 09:12 10-08-2006
hacsoft

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

Цитата:
Можно ли батом сделать так, чтоб в текстовом файле найти строку с заданім текстом и все что віше єтой строки удалить?

Конечно можно. А что за прикол такой писать с і и є ?

Всего записей: 116 | Зарегистр. 18-11-2005 | Отправлено: 10:56 10-08-2006
isem



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

Всего записей: 81 | Зарегистр. 22-07-2005 | Отправлено: 13:06 10-08-2006
fakel33



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить проблему.
В каталоге лежат текстовые файлы (имя может быть любым).
Нужно в каждом файле удалить третью строку и переложить полученные файлы в другой каталог.

Всего записей: 1106 | Зарегистр. 22-08-2003 | Отправлено: 16:42 10-08-2006
KeyGen



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Интересует такой вопрос:
 
Допустим имеется файл, c названием Test.exe (он более новый, чем другой Test.exe, который лежит в папке Folder).
 
Требуется заменить файл, но предварительно сделать backup старого (допустим в папку BAK).
 
Или же переименовать старый файл в Test.exe.BAK

Всего записей: 1220 | Зарегистр. 20-06-2005 | Отправлено: 16:52 10-08-2006
isem



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
copy C:\folder1\test.exe C:\folder1\test.exe.bak  
copy C:\folder\test.exe C:\folder1\test.exe  
И все
 
Добавлено:
 
или так
copy C:\folder1\test.exe C:\folder1\bak\test.exe
copy C:\folder\test.exe C:\folder1\test.exe  
 
Работает под ХР и 2000
Проверял лично

Всего записей: 81 | Зарегистр. 22-07-2005 | Отправлено: 17:04 10-08-2006
Smitis



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

Цитата:
Можно ли батом сделать так, чтоб в текстовом файле найти строку с заданім текстом и все что віше єтой строки удалить?

В цикле (for /?) перебираешь все строки файла. Пока не встретишь строку с текстом, строки пропускаешь, затем пишешь оставшиеся строки в другой файл.
Но батники плохо приспособлены для обработки текста. Могут возникнуть проблемы со специальными символами.

Всего записей: 2435 | Зарегистр. 09-02-2003 | Отправлено: 17:26 10-08-2006
isem



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Smitis
 
А можно на примере, пожалуйста, а то никак не разберусь

Всего записей: 81 | Зарегистр. 22-07-2005 | Отправлено: 19:00 10-08-2006
01MDM



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

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:36 10-08-2006
ViSiToR



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

Цитата:
 Как узнать имя текущего каталога без полного пути?

Не совсем понятен вопрос - что значит узнать имя текущего каталога?! если нужно вывести на экран это имя, то можно так:
 

Код:
for /f %%I in ('cd') do echo %%~nI
pause

 
А если нужно вписать его в файл, то так:
 

Код:
for /f %%I in ('cd') do echo %%~nI > File.txt

 
isem

Цитата:
А можно на примере

Могу только привести пример поиска слова\строчки, т.к удаление строк, и\или переписка файла по новой, для меня пока не изведанная территория в батниках
 

Код:
@echo off
find /i /c "Слово" "File.txt" | find /c ": 0" > find.tmp
for /f %%i in (find.tmp) do if %%i==0 goto found
del /q find.tmp
echo The word was not found!
pause
exit
:found
echo The word was found!
pause
del /q find.tmp

 
В данном примере, там где Слово, нужно вписать слово\строчку для поиска, а там где File.txt, нужно вписать имя файла в котором следует сделать поиск по слову\строчке. Если текст найден, то на экран выводится сообщение «The word was found!», если не найден, то «The word was not found!».

----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:13 10-08-2006 | Исправлено: ViSiToR, 23:32 10-08-2006
abz



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

Цитата:
for /f %%I in ('cd') do echo %%~nI  
pause  
 
 
А если нужно вписать его в файл, то так:  
 
 
Код:for /f %%I in ('cd') do echo %%~nI > File.txt  

Не работает. Пишет:

Цитата:
Режим вывода команд на экран (ECHO) включен.

Всего записей: 14936 | Зарегистр. 04-11-2002 | Отправлено: 23:45 10-08-2006
ViSiToR



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

Цитата:
Не работает. Пишет:

Как я понимаю, проверка была сделанна в командной строке, а пример этот для батника - чтобы отображалось правильно в командной строке, нужно чтобы был один знак процента, а также, нужно сначало задать какой-то каталог:
 

Код:
 
cd "c:\program files"
for /f "delims=" %I in ('cd') do echo %~nI

 
Тут, "delims=" - это для избежания конфликта при выводе длинных имён каталогов. Так что в своём примере для батников, я не учёл этот факт, и вот так должен выглядеть состав в батнике при этих изминениях:
 
Для вывода на экран:

Код:
for /f "delims=" %%I in ('cd') do echo %%~nI  
pause

 
Для вывода в файл:
 

Код:
for /f "delims=" %%I in ('cd') do echo %%~nI > File.txt


----------
ViSiToR a.k.a CreatoR
CreatoR это не ник, CreatoR это стиль жизни!

Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 00:21 11-08-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru