Тролль Опубликовано 2 мая, 2007 Жалоба Поделиться Опубликовано 2 мая, 2007 Если это в Windows 2003, то команду задержки выполнения командного файла мы уже использовали: timeout /t 60 /nobreak (тут задержка на 60 с) Если это в Windows 2000/XP, то там специальной команды для этого нет, приходится использовать побочный эффект другой команды и задержка на те же 60 с записывается так: ping -n 60 localhost > nul Впрочем, в Windows 2003 тоже можно использовать этот вариант. Ссылка на комментарий Поделиться на другие сайты Поделиться
Saladin Опубликовано 2 мая, 2007 Жалоба Поделиться Опубликовано 2 мая, 2007 Тролль Да, это в Windows 2003. timeout /t 60 /nobreakзапустилась, но не приостановила выполнение последующих команд.ping -n 60 localhost > nul а вот это надо попробовать, хотя способ забавный. ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Hush Puppy Опубликовано 4 мая, 2007 Жалоба Поделиться Опубликовано 4 мая, 2007 Здравствуйте! Почитала эту тему и вдохновилась на то, чтобы написать свой первый батник. Очень простой. Как ни странно, у меня получилось. Вот он: chcp 1251cd %mysql%mysql Благодаря этому батнику я теперь могу запускать mysql прямо с рабочего стола. Но теперь мне понадобилась еще одна вещь - чтобы после того, как mysql запущен, в нем выполнились следующие команды: set character_set_client = cp1251;set character_set_connection = cp1251;set character_set_results = cp1251;set character_set_server = cp1251; Простое добавление этих команд в конец батника не помогло :( Подскажите пожалуйста, возможно ли в принципе сделать так, чтобы батник выполнял команды в mysql? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maza Faka Опубликовано 14 мая, 2007 Жалоба Поделиться Опубликовано 14 мая, 2007 Подскажите пожалуйста, возможно ли в принципе сделать так, чтобы батник выполнял команды в mysql? Нет. Батник может выполнять только консольные команды и утилиты. Ссылка на комментарий Поделиться на другие сайты Поделиться
Hush Puppy Опубликовано 15 мая, 2007 Жалоба Поделиться Опубликовано 15 мая, 2007 Нет. Батник может выполнять только консольные команды и утилиты. Спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Saladin Опубликовано 14 июня, 2007 Жалоба Поделиться Опубликовано 14 июня, 2007 (изменено) Задача: нарисовать батник запускающий архиватор (например Winrar :) ) таким образом, чтобы в одной папке создавался архив файлов лежащих в другой папке, при этом архиву присваивалось имя, содержащее время создания. И предыдущие архивы затираться не должны. :) PS Просто с понедельника ухожу в отпуск... Изменено 14 июня, 2007 пользователем Saladin Ссылка на комментарий Поделиться на другие сайты Поделиться
CreatoR Опубликовано 14 июня, 2007 Автор Жалоба Поделиться Опубликовано 14 июня, 2007 Saladin: чтобы в одной папке создавался архив файлов лежащих в другой папке Каких файлов? конкретных расширении? Можно по списку, можно весь каталог, можно по маске, по дате создания, и т.д... Вот пример, запаковывает все файлы, для имени архива генерируется дата и время (с учётом секунд), если этого мало, то для имени файла проходит проверка в цикле, чтобы получить уникальное имя, это гарантирует то, что файла архива не будет существовать с новым сгенерированным именем: @echo offSet Archivator=C:\Program Files\WinRAR\Rar.exeSet SourceDir=%CD%\SourceSet DestDir=%CD%\DestSet NowTime=%Date%_%Time:~0,2%;%Time:~3,2%Set Secs=%Time:~0,-3%Set NowTime=%NowTime%;%Secs:~-2%Set ArchivePath=%DestDir%\%NowTime%.rarSet Num=1:LoopIf Not Exist "%ArchivePath%" Goto EndLoopFor %%a In ("%ArchivePath%") Do (Set FName=%%~naSet FExt=%%~xa)Set NewFName=%DestDir%\%FName%_%Num%%FExt%Set /A Num+=1If Exist "%NewFName%" (Goto Loop) Else (Set NewFName=%NewFName%)Set ArchivePath=%NewFName%:EndLoopCD "%SourceDir%""%Archivator%" a "%ArchivePath%" Можно конечно встроенными средствами консольной утилиты Rar.exe этого добиться (но самому интереснее ;)): @echo offSet Archivator=C:\Program Files\WinRAR\Rar.exeSet SourceDir=%CD%\SourceSet DestDir=%CD%\DestSet ArchivePath=%DestDir%\CD "%SourceDir%""%Archivator%" a -agDD_M_YYYY_HH;MM(N) "%ArchivePath%" Ссылка на комментарий Поделиться на другие сайты Поделиться
Saladin Опубликовано 14 июня, 2007 Жалоба Поделиться Опубликовано 14 июня, 2007 (изменено) CreatoR Спасибо за оперативность. ;) А теперь давай пояснения: где назначать пути, где указывать файлы... ;) Я медленный, но упорный - потихоньку пойму... ;) Все файлы расширения *.bak (бакупы то есть :( ). Желательно получить архив с именем ...ГГММДД_ЧЧММ.rar. Необходимо разобраться с проблемой сегодня - завтра последний день перед отпуском... Изменено 14 июня, 2007 пользователем Saladin Ссылка на комментарий Поделиться на другие сайты Поделиться
CreatoR Опубликовано 14 июня, 2007 Автор Жалоба Поделиться Опубликовано 14 июня, 2007 Saladin: где назначать пути, где указывать файлы Путь к папке в которой лежат файлы у переменной Set SourceDir= Путь в который будет помещён архив, у переменной Set DestDir= Путь к архиватору тут - Set Archivator= Все файлы расширения *.bak Тогда нуджно подставить фильтр... Желательно получить архив с именем ...ГГММДД_ЧЧММ.rar. Вот пример: @echo offSet Archivator=C:\Program Files\WinRAR\Rar.exeSet SourceDir=%CD%\SourceSet DestDir=%CD%\Dest\CD "%SourceDir%""%Archivator%" a -ag+YYYYMMDD_HHMM(N) "%DestDir%" *.bak Где (N) будет подставляться номер, если файл с подобным именем существует, то цифра соответственно будет возрастать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Saladin Опубликовано 14 июня, 2007 Жалоба Поделиться Опубликовано 14 июня, 2007 (изменено) Теперь вроде всё понял. :) Спасибо. А дата в имени обязательно должна быть ...ГГГГ? ГГ быть не может? Изменено 14 июня, 2007 пользователем Saladin Ссылка на комментарий Поделиться на другие сайты Поделиться
CreatoR Опубликовано 14 июня, 2007 Автор Жалоба Поделиться Опубликовано 14 июня, 2007 (изменено) Saladin: А дата в имени обязательно должна быть ...ГГГГ? ГГ быть не может? Может, но тогда вместо 2007 будет 07 (видимо берётся последнее, что в принципе логично). Изменено 14 июня, 2007 пользователем CreatoR Ссылка на комментарий Поделиться на другие сайты Поделиться
Saladin Опубликовано 14 июня, 2007 Жалоба Поделиться Опубликовано 14 июня, 2007 Вот теперь вопрос исчерпан. Спасибо ещё раз. Выручил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sidoy Опубликовано 15 июня, 2007 Жалоба Поделиться Опубликовано 15 июня, 2007 Очень интересная тема, может и мне поможете. Есть у меня на компе два сетевых подключения обьедененые в мост, нужно что бы батник просто перегружал мост, т.е. отключил его и заново включил. Вот в принципе и всё. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 15 июня, 2007 Жалоба Поделиться Опубликовано 15 июня, 2007 Sidoy: Нечто подобное уже обсуждалось в этой теме, посмотри, возможно тебе это тоже подойдет ссылка Подробное описание утилиты, что предложил Kobi тут Ссылка на комментарий Поделиться на другие сайты Поделиться
Sidoy Опубликовано 15 июня, 2007 Жалоба Поделиться Опубликовано 15 июня, 2007 Maikll: Спасибо, на днях попробую и отпишусь. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sidoy Опубликовано 11 июля, 2007 Жалоба Поделиться Опубликовано 11 июля, 2007 Всем привет! Есть проблема и думаю её можно как-то решить вашими советами. Проблема вот в чем, у меня в локальной сетке бывает пропадает интернет(в основном когда кто-то сканит сеть), а тачка моя работает в принципе круглосуточно, так же круглосуточно она что-то тянет из инета, если инет пропадает когда я за машиной, то я его запускаю, а вот когда дело происходит ночью и я сплю, то этого сделать некому, вот я думаю, а как бы зачудить какой-нить батник или скрипт, что бы он проверял запущен мой VPN или нет, и если таковой не работает, то запускал подключение. В общем, если что не понятно из мной сказаного, пишите, буду пробовать написать не так запутано. Ось у меня ХР SP2. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 12 июля, 2007 Жалоба Поделиться Опубликовано 12 июля, 2007 Sidoy: Наверное для этого можно использовать всю ту же утилиту rasdial Получится нечто вроде @echo off ping ya.ru | find /i "(100" if %errorlevel% == 1 goto exit echo Restart...date /t >>restart.log time /t >>restart.log rasdial <имя-vpn-подключения> <login> <pass> >>restart.logecho ------ >>restart.log:exit echo OK... батник пингует сервер и если пинга нет, пытается установить VPN-соединение c записью времени в лог. Ссылка на комментарий Поделиться на другие сайты Поделиться
Sidoy Опубликовано 12 июля, 2007 Жалоба Поделиться Опубликовано 12 июля, 2007 Maikll: вопрос такой походу а как батник заставить постоянно выполнятся!? Ссылка на комментарий Поделиться на другие сайты Поделиться
CreatoR Опубликовано 12 июля, 2007 Автор Жалоба Поделиться Опубликовано 12 июля, 2007 Sidoy: как батник заставить постоянно выполнятся!? Циклом... @echo off:Loopping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looprasdial <имя-vpn-подключения> <login> <pass>goto Loop Ссылка на комментарий Поделиться на другие сайты Поделиться
Sidoy Опубликовано 13 июля, 2007 Жалоба Поделиться Опубликовано 13 июля, 2007 допустим если я брошу батник с таким текстом.... @echo off:Loopping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looprasdial <имя-vpn-подключения> <login> <pass>goto Loop в автозагрузку, то он будет работать всё время, правильно я понял? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 13 июля, 2007 Жалоба Поделиться Опубликовано 13 июля, 2007 Sidoy: ага Ссылка на комментарий Поделиться на другие сайты Поделиться
Sidoy Опубликовано 13 июля, 2007 Жалоба Поделиться Опубликовано 13 июля, 2007 хотелось бы разобрать на примере @echo off:Loopping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looprasdial Internet login pwdgoto Loop где Internet - имя моего подключения login - логин pwd - пароль Я в этих делах ламер, поэтому и хочу всё понять. С таким кодом у меня ничего не вышло(я подставил свои настоящии логин и пароль). Пробывал даже брать логин и пароль в кавычки, пофигу, закралось подозрение что rasdial - это какая-то функция/програмка, которой у меня на компе нету. Ссылка на комментарий Поделиться на другие сайты Поделиться
CreatoR Опубликовано 13 июля, 2007 Автор Жалоба Поделиться Опубликовано 13 июля, 2007 Sidoy: rasdial - это какая-то функция/програмка, которой у меня на компе нету. Да, это консольная программа, проверь: rasdial /? впиши этот код в командную строку и нажми Enter... если будет сообщение о том что программа не найдена, значит у тебя её нет (могу залить свою если что :D ). Ссылка на комментарий Поделиться на другие сайты Поделиться
Sidoy Опубликовано 14 июля, 2007 Жалоба Поделиться Опубликовано 14 июля, 2007 CreatoR: команда такая есть, осталось только уточнить логин и пароль пишутся в кавычках или так просто через пробел, и ещё имя подключение - это так как оно называется в сетевых покдключениях или у него ещё есть какое-то имя? Ссылка на комментарий Поделиться на другие сайты Поделиться
Maikll Опубликовано 14 июля, 2007 Жалоба Поделиться Опубликовано 14 июля, 2007 Sidoy: Логин и пароль пишутся без кавычек, через пробел. Имя подключения - имя как в сетевых, все верно. Вот пример C:\Documents and Settings\Maikll>rasdial FREE freeУстановка связи с FREE... Проверка имени и пароля пользователя... Регистрация компьютера в сети... Установлена связь с FREE. Команда успешно завершена. C:\Documents and Settings\Maikll>rasdial free /DISCONNECT Команда успешно завершена. у меня пароля нет, поэтому пишу только логин и имя соединения, если у тебя имя на русском, тогда возможно придется его взять в кавычки. З.Ы если ты данный выше код скопировал с форума и потом сохранял как батник, проверь чтобы в конце строк не было лишних пробелов, иначе от этого тоже может не работать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения