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

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



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vancio
Потому, что когда открывается 1-й файл то батничек ждет когда закроется Эксель что-бы продолжить работу
Если надо открыть оба - то

Код:
@Echo Off
Call Test1.cmd
Call Test2.cmd

И в соответстующих батничках пропиши вызов книг
 
Чтобы не раздражали открытые окна консоли воспользуйся программой cmdow из шапки

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 13:24 24-05-2006
vancio

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

Код:
 
@Echo Off
 "D:\test.xls"
 

 
start2.bat

Код:
 
@Echo Off
 "D:\Work\тест 1.xls"
 

 
startall.bat

Код:
 
@Echo Off
 Call start1.bat
 Call start2.bat
 

 
запускается только первый  

Всего записей: 91 | Зарегистр. 26-07-2005 | Отправлено: 13:59 24-05-2006
jak_forest

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

Код:
 
@Echo Off
 start start1.bat
 start start2.bat
 

Всего записей: 55 | Зарегистр. 07-12-2005 | Отправлено: 08:59 25-05-2006
vancio

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Странно,
с первого раза вроде заработало, но потом  стал открывать только первый файл(хотя должен был три открыть) вместо последних двух просто запускает Excel.
 
 
Добавлено:
сделал так:

Код:
@Echo Off  
 start /b start1.bat  
 start /b start2.bat
 start /b start3.bat
 

 
открывает все три файла но кроме них и три "пустых" Excel'я  
параметр "/b" позволяет запускать очередной батник в том же cmd окне
но не нашел параметра чтобы файлы Excel открывались в одном окне  
 
Добавлено:
кстати вот так вот :  

Код:
@Echo Off  
 
 call start1.bat  
 call start2.bat
 call start3.bat
 
 

 
cmd тоже ждет чтобы Первый открытый Excel завершил свою работу
и после его открытия, начинает работать вторая строка и т.д.

Всего записей: 91 | Зарегистр. 26-07-2005 | Отправлено: 10:21 25-05-2006
vancio

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

Код:
 
@Echo Off  
start /b start1.bat  
start /b start2.bat  
start /b start3.bat
 

 
не открывал пустые окна...Excel
 
Добавлено:
 
Вот ребята решение:

Код:
CHCP 1251  
@Echo Off  
start /b excel "D:\тест 1.xls"  
start /b excel "D:\Work\test.xls"  
start /b excel "D:\тест 3.xls"  
cls
 

 
работает как часы, спасибо LEX1

Всего записей: 91 | Зарегистр. 26-07-2005 | Отправлено: 10:28 26-05-2006 | Исправлено: vancio, 12:45 26-05-2006
Zostr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос
Нужен батник выполняющий подключение через телнет к удаленной машине
telnet xxx.xx.xx.xx
далее просится ввести логин и пароль. Как сделать чтоб програмка сама писала логин и пароль.
и дальше после подключений выполняла
Net stop ServerGeCon
Пауза 30 секунд
Net start ServerGeCon

Всего записей: 4 | Зарегистр. 07-06-2006 | Отправлено: 10:23 07-06-2006
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Zostr
стандартный telnet скорее всего никак. по крайней мере не bat-файлом.
попробуй http://www.sysinternals.com/utilities/psexec.html

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 15:10 07-06-2006
surgutfred



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Всем привет.
@echo of
if exist S:\boxes\002rdd\QUEST\*.* goto :surgu
goto :end
 
:surgu
if exist S:\boxes\002rdd\QUEST\*.rar rar.exe e S:\boxes\002rdd\QUEST\*.rar S:\boxes\002rdd\QUEST\
if exist S:\boxes\002rdd\QUEST\*.rar del S:\boxes\002rdd\QUEST\*.rar
if exist S:\boxes\002rdd\QUEST\*.qst move S:\boxes\002rdd\QUEST\*.qst C:\CONS3000\RECEIVE
call C:\CONS3000\answer.bat
rar.exe a -m5 -r -rr -df -v10000 surgu C:\CONS3000\send\*.ans
move C:\CONS3000\send\surgu*.* S:\boxes\002rdd\ANSWER\
:end
 
почему, если S:\boxes\002rdd\QUEST\ нет файлов он все равно идет по метке surgu, а не end. Он не понимает что ли *.*? Как ему тогда сказать, что если папка пустая, то иди в конец, а если что то есть, иди к surgu

Всего записей: 589 | Зарегистр. 21-08-2001 | Отправлено: 16:01 08-06-2006
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
surgutfred
DIR S:\boxes\002rdd\QUEST\* /B | FIND /V "HT6UG7FUJDO8_87R" >NUL && GOTO :surgu || GOTO :end

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 17:17 08-06-2006
surgutfred



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
igor_andreev
Сенькаю, вроде пошло.
А "HT6UG7FUJDO8_87R" - это что? Любой набор символов?

Всего записей: 589 | Зарегистр. 21-08-2001 | Отправлено: 07:12 09-06-2006 | Исправлено: surgutfred, 07:32 09-06-2006
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
surgutfred
Да, любой бред, которого стопудово в папке нет. И вместо
 
if exist S:\boxes\002rdd\QUEST\*.rar del S:\boxes\002rdd\QUEST\*.rar  
if exist S:\boxes\002rdd\QUEST\*.qst move S:\boxes\002rdd\QUEST\*.qst ...
 
ты бы тоже лучше использовал или вывод команды DIR, вроде  
DIR /B Folder\*.* | FIND /I ".rar" ....
или FOR
FOR %%A IN (*.rar) DO ...
 
Не понимает IF EXIST подстановочных символов(*?).
 

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 08:04 09-06-2006
evle



1 + int rand(100);
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev

Цитата:
Не понимает IF EXIST подстановочных символов(*?).  

Лучше всё-таки проверять, прежде чем писать.
Подробнее...
Конструкция "if exist *.*" Не срабатывает, скорее всего, из-за того, что в папке всегда существует ссылка на себя (".") и на родительскую папку (".."). Как красиво определить, есть ли в ней и другие файлы, пока не знаю.
А вот конструкция  

Код:
 
DIR /B Folder\*.* | FIND /I ".rar"
 

не очень надёжна. Может натолкнуться на файл "Some.rare.file.doc", да и нет никакой необходимости отказываться от IF EXIST в этом случае.
 
Добавлено:
Нашёл способ более надёжно проверять пустоту папки (хоть и не очень красиво, но работает)

Код:
 
@echo off
for %%i in (%1\*.*) do ( if %%i NEQ . if %%i NEQ .. goto notempty )
goto :end
 
:notempty
echo Folder %1 is not empty
 
:end
 


----------
For every complex problem, there is a solution that is simple, neat, and wrong.

Всего записей: 2110 | Зарегистр. 03-02-2005 | Отправлено: 09:02 09-06-2006
nightlight

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
How can a batch script test if a folder is empty, or contains folders, files, or both folders and files?
http://www.jsifaq.com/SUBM/tip6400/rh6415.htm

Всего записей: 112 | Зарегистр. 17-03-2004 | Отправлено: 16:25 09-06-2006 | Исправлено: nightlight, 17:03 09-06-2006
igor_andreev

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

Цитата:
Лучше всё-таки проверять, прежде чем писать.  

Я ими пользоваться умею Загляни например вовнутрь моего батника из этого поста http://forum.ru-board.com/topic.cgi?forum=62&bm=1&topic=3573&start=1540#8
И проверь на работоспособность заодно, пожалуйста, если есть кучка непереименованных хотфиксов. Я его, когда писал, исходил из того, что Майкрософт более-менее определилась с названиями своих KB. Но там я подстановочные знаки использую вкупе с командой FOR

Цитата:
А вот конструкция    
DIR /B Folder\*.* | FIND /I ".rar"  
не очень надёжна.

Согласен. Поэтому я и написал перед конструкцией слово "вроде"
 

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 16:41 09-06-2006 | Исправлено: igor_andreev, 16:54 09-06-2006
eubulos

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    dir *.avi /B >> dir.txt
    dir *.mpg /B >> dir.txt
    dir *.mkv /B >> dir.txt
    dir *.ogm /B >> dir.txt
    dir *.wmv /B >> dir.txt
    for /f "delims==" %%A in (dir.txt) do encode -n 50 "%%A"  
    del dir.txt
 
вопрос такой, а как сделать похитрее? т.е. получаем список файлов по расширению и передаем в цикл, в цикле же программе передается имя файлы и параметр собственно, получаются в цикле файлы. как после каждого прохода создавать директорию с именем исходного файла и после каждого прохода цикла переносить результат в директорию, скажем по маске? ?

Всего записей: 26 | Зарегистр. 22-04-2006 | Отправлено: 02:10 10-06-2006
Labean_Hesv

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть папка  
D:\Documents and Settings\Roman\Cookies\
 
В ней надо удалять все Cookies, за исключением нужных:
 
Допустим:
roman@forum.ru-board[1].txt
roman@forum.ru-board[2].txt
roman@forum.ru-board[3].txt
roman@forum.ru-board[4].txt
и т.д.
 
roman@forum.warezzz[2]
roman@forums.overclockers[1]
roman@philka[1]
и.т.д.
 
Написать батничек, в него как-то загнать список нужных файлов, создать на него ярлычек на Рабочем столе и в любое время чистить. Это мои мысли. С программированием не знаком, если кто-нибудь создаст такую штуку, буду очень признателен.

Всего записей: 2786 | Зарегистр. 21-11-2004 | Отправлено: 18:12 10-06-2006
scup



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Labean_Hesv так и пиши: del D:\Documents and Settings\Roman\Cookies\roman@*.* это в батнике, дальше создай на столе на него ярлык.... Вроде все просто. Или я че-то не понял? кстати, нужные перед удалением можешь куда-то копировать.

Всего записей: 556 | Зарегистр. 04-04-2003 | Отправлено: 23:23 10-06-2006
Labean_Hesv

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

Цитата:
Вроде все просто. Или я че-то не понял?
Сделать хочу, чтобы это все заранее готово было и потом быстро лишние убрать одним щелчком, а оставить только нужные. Например, Рапида свой кук создала, чтобы его убрать надо лезть в папку, а забудешь убрать потом она "припоинит" при случае и т.д.. А по предложенному пути я сейчас и хожу - отсортировал, перенес, остаток удалил, скопировал назад... тягомотина!  
  А можно сделать так: дописать в этот батничек, чтобы после удаления всех, скопировать мой резерв нужных Cookies из папки D:\CookRes  все файлы в папку D:\Documents and Settings\Roman\Cookies\.  Тогда, в принципе, задача была бы решена нормально. Я бы нужные резервировал, накапливал в папке CookRes, а потом загонял бы их на место.
 
Добавлено:
А где бы почитать, как писать бат-файлы, хотя бы самые основы, чтобы немного разбираться что к чему, и куда запрягать коня!

Всего записей: 2786 | Зарегистр. 21-11-2004 | Отправлено: 03:10 11-06-2006 | Исправлено: Labean_Hesv, 04:35 11-06-2006
igor_andreev

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

Цитата:
D:\Documents and Settings\Roman\Cookies\  
 
В ней надо удалять все Cookies, за исключением нужных:

Можно нужным печенькам временно присвоить атрибут "Только чтение", потом дать команду на удаление всех файлов *.txt, кроме имеющих атрибут "Только чтение",  и после удаления опять убрать с оставшихся(стало быть нужных) атрибут read-only.

Код:

@ECHO OFF
 
CD /D "%USERPROFILE%\Cookies"
 
REM Тут вписывай ATTRIB +R *нужная кука*.txt
 
ATTRIB +R *forum.ru-board*.txt > NUL
ATTRIB +R *wapbbs*.txt         > NUL
ATTRIB +R *imho*.txt           > NUL
ATTRIB +R *nge*.txt            > NUL  
ATTRIB +R *softkey*.txt        > NUL
ATTRIB +R *filepost*.txt       > NUL  
ATTRIB +R *avaxhome*.txt       > NUL  
 
DEL /Q /A:-R *.TXT
 
ATTRIB -R *.TXT > NUL

 
В командной строке набери ATTRIB /? и потом DEL /? , тебе сразу понятней станет.
 
P.S. У меня такая задача есть, только ее nnCron делает при отсоединении от интернета с ROBOCOPY (есть такая дивная утилита у Майкрософт).
 
ROBOCOPY.EXE E:\EMPTY "%USERPROFILE%\Cookies" *.txt /PURGE /R:1 /XF *forum.ru-board*.txt *nge*.txt и т.д.
 
Папка E:\EMPTY у меня есть всегда для моих надобностей и она всегда пустая.  
А я как раз тогда ключи ROBOCOPY изучал, так и осталась у nnCrona эта задача. Раааботает себе уже третий год

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 10:23 11-06-2006 | Исправлено: igor_andreev, 10:26 11-06-2006
Labean_Hesv

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

Цитата:
ROBOCOPY (есть такая дивная утилита у Майкрософт).
А где бы ее скачать? Искал по поиску, но везде только ссылки на доку по ней. Если немного весит, может подбросишь мне на мыло villy_gabeshСОБАКАland.ru Буду очень признателен.  

Всего записей: 2786 | Зарегистр. 21-11-2004 | Отправлено: 11:26 11-06-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