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

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



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте!
Необходимо создать батник, чтоб:
текст из файла 1.txt, начиная со строки с текстом xxxxx и до конца файла, копировался в файл 2.txt.

Всего записей: 241 | Зарегистр. 23-06-2008 | Отправлено: 18:58 27-10-2009
01MDM



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

Код:
 
@echo off
setlocal
 
for /f "tokens=1 delims=:" %%i in ('findstr /b /n "xxxxxx" 1.txt') do set /a skip=%%i-1
1>2.txt more +%skip% 1.txt
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 23:33 27-10-2009
arestarh1986



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

Всего записей: 241 | Зарегистр. 23-06-2008 | Отправлено: 00:21 28-10-2009
sv78

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста.
 
Есть файл password.txt, в котором хранятся пароли. Пишу скрипт, который пробегает по всем rar-архивам в папке и пытается их разархивировать, перебирая пароли из password.txt
 
Написал такой скрипт. Но не знаю, как прервать внутренний цикл, когда пароль для текущего файла найден успешно?
 
FOR %%f IN (*.rar) DO (for /f "eol=; tokens=1" %%i in (password.txt) do rar e -o- -inul -p%%i %%f && [досрочно выйти в первый цикл] )
 
Аналога команды break в cmd вроде нет. Через goto тоже не вижу как сделать.
Подскажите!

Всего записей: 14 | Зарегистр. 17-10-2005 | Отправлено: 12:24 28-10-2009
01MDM



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

Цитата:
досрочно выйти в первый цикл

Надо второй цикл вынести за пределы первого:

Код:
 
@echo off
 
FOR %%f IN (*.rar) DO call:pass "%%f"  
goto:eof
 
:pass
for /f "eol=; tokens=1" %%i in (password.txt) do (
       rar e -o- -inul -p%%i %1 && goto:eof
)
 

 
При условии, что `rar ... &&` работает
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:38 28-10-2009
sv78

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

Всего записей: 14 | Зарегистр. 17-10-2005 | Отправлено: 14:37 28-10-2009
easy_y

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А в фаре можно использовать cd?
Например нужно часто попадать в каталог d:\...\run
cd "d:\...\run" не хочет работать)).
Например cd d: вроде срабатывает (видно что был переход на диск D) но потом все равно происходит возврат в каталог, который был в панели менеджера
 

Всего записей: 341 | Зарегистр. 22-05-2006 | Отправлено: 19:59 29-10-2009 | Исправлено: easy_y, 20:00 29-10-2009
plavrovi4

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот батник первая часть работает на ура а вторая незапускается может где ошибка подскажите мозгов чет нехватает у меня  
 
@echo off  
cls  
:loop  
echo (%date% %time%) Starting SRCDS  
start /wait D:\srcds.exe  -console -nosteam -game cstrike -nomaster -insecure -tickrate 100 +fps_max 600 -maxplayers 20 -port 27020 +sv_lan 1  
echo (%date% %time%) Restarting SRCDS  
goto loop  
 
:loop1  
echo (%date% %time%) Starting SRCDS1  
start /wait E:\srcds.exe  -console -nosteam -game cstrike -nomaster -insecure -tickrate 100 +fps_max 600 -maxplayers 20 -port 27021 +sv_lan 1  
echo (%date% %time%) Restarting SRCDS1  
goto loop1 (вот это начиная с loop1 не запускается как сделать)  
если отдельные батники делать все пучком но уменя также и 5 окон открывается как сделать чтоб все в одном было

Всего записей: 5 | Зарегистр. 29-10-2009 | Отправлено: 20:40 29-10-2009
easy_y

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
plavrovi4
Непонятно, что тебе нужно?
Чтобы одновременно были запущены сервера с D и с E или чтобы после вылета запущенного с D запускался с E а потом обратно?

Всего записей: 341 | Зарегистр. 22-05-2006 | Отправлено: 22:35 29-10-2009
plavrovi4

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне нужно чтобы одновременно запускались D и E и при краше независимо друг от друга перезапускались т.е допустим севрера запустились и работают норм вдруг севрер E вылетает и сам себя перезапускает вот так. яж написал что по отдельности они отрабатывают классно но при объединении в один код работает только loop а loop1 непашет ух вроде все.

Всего записей: 5 | Зарегистр. 29-10-2009 | Отправлено: 23:02 29-10-2009
easy_y

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тогда похоже что ничего не получится. Следующая команда не запустится пока не завершится предыдущая. Но после завершения предыдущей тебе нужно выполнить не следующую а предыдущую.

Всего записей: 341 | Зарегистр. 22-05-2006 | Отправлено: 23:43 29-10-2009
plavrovi4

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Тогда что получается мне надо делать на 5 серверов 5 батников и поотдельности их запускать должен же быть выход может какиенибудь хитрые команды пожалуста помогите я уже делал 5 батников помимо 5 окон батников запустятся еще 5 окон консоли самих серверов а там начинается такая путаница ребят ну очень нужно заранее благодарю.

Всего записей: 5 | Зарегистр. 29-10-2009 | Отправлено: 09:21 30-10-2009
Kosmos_9ball_crash



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всё сам сделал...
хочешь чтобы было хорошо - сделай сам

Всего записей: 38 | Зарегистр. 27-08-2007 | Отправлено: 17:01 02-11-2009 | Исправлено: Kosmos_9ball_crash, 15:58 03-11-2009
ALEX_39

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 Через GPO пытался внедрить батник для предоставления доступа группе пользователей к папке,   cacls.exe "[ProgramFilesFolder]Spark" /E /G Users:F, , соответсвенно разместил его в сценарии входа. В итоге доступ нужным пользователям не предоставился, хотя бат-файл выполнялся при входе, если запускать его локально на компе - все разрешения выставляются в заданном порядке. Просмотр событий ошибок не выявил. Подскажите куда копать дальше.

Всего записей: 23 | Зарегистр. 26-12-2007 | Отправлено: 15:14 03-11-2009 | Исправлено: ALEX_39, 15:18 03-11-2009
Qarma

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте. Помогите решить проблему: Нужно выполнить одну и ту же процедуру 2000 раз. Нужен рациональный выход из данной ситуации, но не как не тупым копированием процедуры 2000 раз.

Всего записей: 288 | Зарегистр. 18-02-2009 | Отправлено: 17:50 03-11-2009 | Исправлено: Qarma, 18:04 03-11-2009
korosya

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как правильно удалить или закрыть Языковую панель из командной строки.  
Я выполняю команду "Regsvr32.exe /u msutb.dll". После перезагрузки панель исчезает, но при этом исчезает и панель быстрого запуска. Известный твик для восстановления панели быстрого запуска:   #
 
не помогает.

Всего записей: 1005 | Зарегистр. 19-07-2003 | Отправлено: 20:26 03-11-2009 | Исправлено: korosya, 20:26 03-11-2009
Rush

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

Цитата:
Помогите решить проблему: Нужно выполнить одну и ту же процедуру 2000 раз. Нужен рациональный выход из данной ситуации, но не как не тупым копированием процедуры 2000 раз.

Наверное, такое имеется в виду?

Код:
for /l %%i in (1#,1#,2000#) do [нужная процедура]

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 20:42 03-11-2009
Qarma

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

Цитата:
Наверное, такое имеется в виду?
 

Да. То что нужно. Спасибо.

Всего записей: 288 | Зарегистр. 18-02-2009 | Отправлено: 21:06 03-11-2009
Smokeer

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть ли в cmd средство для извлечения строк из текстового файла и работы с ними (банальное сравнений, возможность использовать как параметр команды)?
=========
Ответ: FOR /F

Всего записей: 781 | Зарегистр. 25-09-2005 | Отправлено: 03:17 04-11-2009 | Исправлено: Smokeer, 22:47 05-11-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
есть батник, который удаляет все пустые папки:
for /f "tokens=*" %%i in ('dir /b /s *.*') do move "%%i"  
Set "Folder=.\"
Call :SubDir "%Folder%"  
GoTo :EOF  
:SubDir  
For /D %%B In ("%~1\*.*") Do (  
  Call :SubDir "%%B"  
  Dir "%%B" /B /A:-D>Nul 2>&1 || RD /Q "%%B">Nul 2>&1  
)
работает он чудесно, но вот  если есть папка такого имени "РћР±РЅРѕРІС‹", то он не может из неё переместить все файлы и удалить, пишет "Синтаксическая ошибка в имени"
 
Как нибуть это можно исправить, чтобы удалял папки и с таким "абракадабрным" именем ?
 
p.s. абракадабра в имени разная (

Всего записей: 1465 | Зарегистр. 28-10-2007 | Отправлено: 14:40 05-11-2009 | Исправлено: vitrzn, 14:46 05-11-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