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

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



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

Всего записей: 100 | Зарегистр. 26-01-2006 | Отправлено: 08:59 10-02-2006
smf

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

Код:
 
for /f "tokens=1" %%i in (filename.txt) do (
call %%i
)
 

Где filename.txt это имя файла со списком bat(ников).
 
Добавлено:
Или так:

Код:
 
for %%i in (*.bat) do call %%i
 

Но тогда за порядком надо следить.

Всего записей: 166 | Зарегистр. 15-11-2002 | Отправлено: 09:05 10-02-2006
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vu1tur
Ошибся там было  
 
xcopy /?
/D:дата     Копирование файлов, измененных не ранее указанной даты.

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 09:39 10-02-2006
YFred



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

Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 10:05 10-02-2006
tomegadeth



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

Код:
 
rmdir /S /Q папка
md папка

Всего записей: 560 | Зарегистр. 22-11-2004 | Отправлено: 10:16 10-02-2006
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del /s *.*

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 10:20 10-02-2006
Vitus_Bering



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

Цитата:
Подскажите, пож-та, как грамотно найти и удалить все пустые директории на диске?

Я уже задавал этот вопрос, но ответов не последовало.
Значит проблема не решаема?

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 10:23 10-02-2006
KapralBel



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

Код:
 
@Echo Off
RoboCopy From To Test.File /B /NP /Mir /NDL /Copy:DATSOU /XO /R:2 /W:5 /Log+:Test.Log
Echo Errorlevel=%ErrorLevel%
 

From - С какой папки копировать
To - в какую папку копировать
Test.File - какой файл копировать
Файл копируется если в папке Получатель он более старый или не существует, в этом случае ErrorLevel - возвращает 1
Если файлы одинаковые или в папке Получатель более новый, то файл не копируется и ErrorLevel - возвращает 0
 
 
Добавлено:
Vitus_Bering
Решаема, просто расписывать долго, может быть тебя устроит не средствами бат-файлов а сторонней утилитой?

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



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

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 10:48 10-02-2006
smf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitus_Bering
Попробуй это:
имя скрипта delempty.cmd

Код:
 
@echo off
for /d %%i in (%1\*) do (
call delempty.cmd "%%i"
rd "%%i"
)
 

Первый параметр скрипта - директория где искать и удалять.

Всего записей: 166 | Зарегистр. 15-11-2002 | Отправлено: 10:50 10-02-2006
KapralBel



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

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



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

Цитата:
Код:  
rmdir /S /Q папка  
md папка

 
Не пойдет, т.к. саму папку удалять нельзя
 
Etalon

Цитата:
del /s *.*

 
Тоже не пойдет, т.к. не удаляются вложенные каталоги.
 
 
Может кто еще что посоветует?

Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 11:38 10-02-2006
MasterTheMAC



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
 
Насколько я понял, рекурсивно обходит каталоги и для каждого вяполняет команду rd. На непустом каталоге не сработает, а пустой удалит.

Всего записей: 87 | Зарегистр. 17-10-2003 | Отправлено: 11:40 10-02-2006
smf

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Удаляет пустые директории.
 
Добавлено:
YFred
У меня есть vbs-скрипт который это делает.
Если надо пошлю в ПМ, а то тема ведь "Задачи на bat-файлах".

Всего записей: 166 | Зарегистр. 15-11-2002 | Отправлено: 11:41 10-02-2006
KapralBel



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

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



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

Всего записей: 936 | Зарегистр. 30-09-2005 | Отправлено: 12:01 10-02-2006
Etalon

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

Код:
 
@Echo off
del /s /q "%~1\*.*"
cd %1
for /D %%d in (*.*) do (
    rmdir /s/q "%%d"
)  
 

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 12:43 10-02-2006 | Исправлено: Etalon, 12:50 10-02-2006
YFred



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

Всего записей: 210 | Зарегистр. 03-03-2005 | Отправлено: 13:00 10-02-2006
Etalon

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YFred
Сначала удаляются все файлы в папке %1 и во всех вложенных в неё папках
Потом в цикле удаляются все вложенные папки
 
Если в качестве параметра %1 передаётся имя содержащее пробелы, то его надо заключать в кавычки  (напр "c:\Program Files")

Всего записей: 306 | Зарегистр. 03-02-2006 | Отправлено: 13:10 10-02-2006
tomegadeth



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Etalon жестоко - без параметра запустишь - удалит все с корня, и себя тоже
 
вот еще вариант на основе smf

Код:
@echo off  
if "%1" == "" (
   echo Usage: recurce.cmd [dirname]
   pause
   goto :eof
)
 
for /d %%i in (%1\*) do (  
   call recurse.cmd "%%i"  
   rd /s /q "%%i"  
)  
 
del /Q "%1"\*

 
 

Всего записей: 560 | Зарегистр. 22-11-2004 | Отправлено: 13:15 10-02-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