Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Управление из командной строки


Рекомендуемые сообщения

Если это в Windows 2003, то команду задержки выполнения командного файла мы уже использовали:

timeout /t 60 /nobreak

(тут задержка на 60 с)

Если это в Windows 2000/XP, то там специальной команды для этого нет, приходится использовать побочный эффект другой команды и задержка на те же 60 с записывается так:

ping -n 60 localhost > nul

Впрочем, в Windows 2003 тоже можно использовать этот вариант.

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 589
  • Создана
  • Последний ответ

Топ авторов темы

Тролль

Да, это в Windows 2003.

timeout /t 60 /nobreak
запустилась, но не приостановила выполнение последующих команд.
ping -n 60 localhost > nul
а вот это надо попробовать, хотя способ забавный. ;)
Ссылка на комментарий
Поделиться на другие сайты

Здравствуйте!

Почитала эту тему и вдохновилась на то, чтобы написать свой первый батник. Очень простой. Как ни странно, у меня получилось.

Вот он:

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?

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Подскажите пожалуйста, возможно ли в принципе сделать так, чтобы батник выполнял команды в mysql?

Нет. Батник может выполнять только консольные команды и утилиты.

Ссылка на комментарий
Поделиться на другие сайты

  • 5 недель спустя...

Задача: нарисовать батник запускающий архиватор (например Winrar :) ) таким образом, чтобы в одной папке создавался архив файлов лежащих в другой папке, при этом архиву присваивалось имя, содержащее время создания. И предыдущие архивы затираться не должны. :)

PS Просто с понедельника ухожу в отпуск... :bye1:

Изменено пользователем Saladin
Ссылка на комментарий
Поделиться на другие сайты

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%"
Ссылка на комментарий
Поделиться на другие сайты

CreatoR

Спасибо за оперативность. ;)

А теперь давай пояснения: где назначать пути, где указывать файлы... ;)

Я медленный, но упорный - потихоньку пойму... ;)

Все файлы расширения *.bak (бакупы то есть :( ).

Желательно получить архив с именем ...ГГММДД_ЧЧММ.rar.

Необходимо разобраться с проблемой сегодня - завтра последний день перед отпуском...

Изменено пользователем Saladin
Ссылка на комментарий
Поделиться на другие сайты

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) будет подставляться номер, если файл с подобным именем существует, то цифра соответственно будет возрастать.

Ссылка на комментарий
Поделиться на другие сайты

Теперь вроде всё понял. :)

Спасибо.

А дата в имени обязательно должна быть ...ГГГГ? :g: ГГ быть не может?

Изменено пользователем Saladin
Ссылка на комментарий
Поделиться на другие сайты

Saladin:

А дата в имени обязательно должна быть ...ГГГГ? ГГ быть не может?

Может, но тогда вместо 2007 будет 07 :g: (видимо берётся последнее, что в принципе логично).

Изменено пользователем CreatoR
Ссылка на комментарий
Поделиться на другие сайты

Очень интересная тема, может и мне поможете.

Есть у меня на компе два сетевых подключения обьедененые в мост, нужно что бы батник просто перегружал мост, т.е. отключил его и заново включил. Вот в принципе и всё.

Ссылка на комментарий
Поделиться на другие сайты

Sidoy: Нечто подобное уже обсуждалось в этой теме, посмотри, возможно тебе это тоже подойдет ссылка

Подробное описание утилиты, что предложил Kobi тут

Ссылка на комментарий
Поделиться на другие сайты

  • 4 недели спустя...

Всем привет!

Есть проблема и думаю её можно как-то решить вашими советами. Проблема вот в чем, у меня в локальной сетке бывает пропадает интернет(в основном когда кто-то сканит сеть), а тачка моя работает в принципе круглосуточно, так же круглосуточно она что-то тянет из инета, если инет пропадает когда я за машиной, то я его запускаю, а вот когда дело происходит ночью и я сплю, то этого сделать некому, вот я думаю, а как бы зачудить какой-нить батник или скрипт, что бы он проверял запущен мой VPN или нет, и если таковой не работает, то запускал подключение.

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

Ось у меня ХР SP2.

Ссылка на комментарий
Поделиться на другие сайты

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:

как батник заставить постоянно выполнятся!?

Циклом...

@echo off:Loopping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looprasdial <имя-vpn-подключения> <login> <pass>goto Loop
Ссылка на комментарий
Поделиться на другие сайты

допустим если я брошу батник с таким текстом....

@echo off:Loopping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looprasdial <имя-vpn-подключения> <login> <pass>goto Loop

в автозагрузку, то он будет работать всё время, правильно я понял?

Ссылка на комментарий
Поделиться на другие сайты

хотелось бы разобрать на примере

@echo off:Loopping ya.ru | find /i "(100"if %errorlevel% == 1 goto Looprasdial Internet login pwdgoto Loop

где Internet - имя моего подключения

login - логин

pwd - пароль

Я в этих делах ламер, поэтому и хочу всё понять. С таким кодом у меня ничего не вышло(я подставил свои настоящии логин и пароль). Пробывал даже брать логин и пароль в кавычки, пофигу, закралось подозрение что rasdial - это какая-то функция/програмка, которой у меня на компе нету.

Ссылка на комментарий
Поделиться на другие сайты

Sidoy:

rasdial - это какая-то функция/програмка, которой у меня на компе нету.

Да, это консольная программа, проверь:

rasdial /?

впиши этот код в командную строку и нажми Enter... если будет сообщение о том что программа не найдена, значит у тебя её нет (могу залить свою если что :D ).

Ссылка на комментарий
Поделиться на другие сайты

CreatoR:

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

Ссылка на комментарий
Поделиться на другие сайты

Sidoy: Логин и пароль пишутся без кавычек, через пробел. Имя подключения - имя как в сетевых, все верно.

Вот пример

C:\Documents and Settings\Maikll>rasdial FREE free

Установка связи с FREE...

Проверка имени и пароля пользователя...

Регистрация компьютера в сети...

Установлена связь с FREE.

Команда успешно завершена.

C:\Documents and Settings\Maikll>rasdial free /DISCONNECT

Команда успешно завершена.

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

З.Ы если ты данный выше код скопировал с форума и потом сохранял как батник, проверь чтобы в конце строк не было лишних пробелов, иначе от этого тоже может не работать.

Ссылка на комментарий
Поделиться на другие сайты

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу



×
×
  • Создать...