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

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

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

Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108

   

Widok



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

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

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:08 19-11-2007 | Исправлено: Dmitriy05, 22:49 13-04-2008
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Если дело выгорает при помощи сторонних утилит - не то что стоит а необходимо ими пользоваться - если у вас получилось разжевать мою задачу - не могли бы поделится своими трудами и вдохновить своими победами над моими проблемами!

Всего записей: 882 | Зарегистр. 04-09-2008 | Отправлено: 10:08 11-11-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kilyan
Получилось, но код я писал дома и там его и оставил. Вернусь с работы - выложу.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 10:59 11-11-2008
AHAKOHDA



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vitrzn
а потому что Вы люди не такие практичные чтобы спросить как я. Не постеснялся знать во благо.
Спасибо Elroir !

Всего записей: 83 | Зарегистр. 10-01-2007 | Отправлено: 15:33 11-11-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kilyan
Вот, что получилось:  
Подробнее...
 
Добавлено:
А вот ссылка на gsar.exe - http://home.online.no/~tjaberg/gsar121.zip

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:10 11-11-2008
GTHack



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Как выделить батником подстроку ?
 
нужно из вывода команды dir "выцепить" количество свободных байт
 
предпоследняя строка (допустим)
2 папок  20 893 331 456 байт свободно
 
хотелось бы на выходе иметь 20893331456
 
 
p.s.
вообще посоветуйте плс как можно на выходе получить свободное место на диске ? (а то если к диру завязываться - на англоязычных системах скрипт не отработает)
 
p.s.s. строчку то я выдернул, как вот теперь циферки из нее вытащить ?
 
@echo off
for /f "tokens=*" %%a in ('dir ^| findstr папок') do (
echo %%a
)
pause

----------
Препараты для мужчин

Всего записей: 551 | Зарегистр. 03-03-2003 | Отправлено: 11:43 12-11-2008 | Исправлено: GTHack, 13:03 12-11-2008
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Говорит что слишком много аргументов в коммандной строке  
Подробнее...

Всего записей: 882 | Зарегистр. 04-09-2008 | Отправлено: 12:23 12-11-2008
GTHack



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
@echo off
for /f "tokens=3" %%b in ('dir ^| findstr папок') do echo %%b
pause  
 
выдергивает  
20 853 465 088   !!!
 
почему то не пробелы между цифрами не считаются разделителями
но и полученный результат нельзя сравнивать с цифрой
 
теперь осталось из строчки "20 853 465 088" получить число 20853465088
 
 
Добавлено:
блин не пойму как for_ом можн перебрать все подстроки одной строки

----------
Препараты для мужчин

Всего записей: 551 | Зарегистр. 03-03-2003 | Отправлено: 13:40 12-11-2008
Elroir



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

Цитата:
Говорит что слишком много аргументов в коммандной строке

Убери из первой строчки "@echo off" и посмотри какaя команда дает такое сообщение.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:24 12-11-2008
GTHack



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а код символа то 255 в пробелах между цифрами !!!

Всего записей: 551 | Зарегистр. 03-03-2003 | Отправлено: 14:24 12-11-2008
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
на more +3 temp1.txt>temp2.txt
 
з.ы.  если вам не в тягость будет- закоментируйте описание к действиям(вашим), а то все что я пытался в Батнике еще понимал,а то что вы - увы уже голова трещит! никак не разберусь (но это только если не в тягость)

Всего записей: 882 | Зарегистр. 04-09-2008 | Отправлено: 14:33 12-11-2008 | Исправлено: Kilyan, 14:59 12-11-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kilyan
1. Пробуем заменить "more +3 temp1.txt>temp2.txt" на "more +3 < temp1.txt > temp2.txt"
2. Подробнее...

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 02:55 13-11-2008
Kilyan



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

Цитата:
1. Пробуем заменить "more +3 temp1.txt>temp2.txt" на "more +3 < temp1.txt > temp2.txt"

тоже самое - слишком много аргументов в ком.строке
......
а за описание - отдельное спасибо.

Всего записей: 882 | Зарегистр. 04-09-2008 | Отправлено: 10:03 13-11-2008 | Исправлено: Kilyan, 10:23 13-11-2008
Elroir



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

Цитата:
тоже самое - слишком много аргументов в ком.строке  

Фантастика какая-то!
Ладно, пробуем так:

Код:
more /E +3 temp1.txt > temp2.txt

или

Код:
more /E +3 < temp1.txt > temp2.txt

Кстати, какая версия Windows используется?


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 16:12 13-11-2008
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а вот так заработало!!!
 
Но есть еще одна проблемка - в реестре есть не только ветка Search Path , а после нее есть еще несколько... Видимо они тоже попадают в обработку и вся конструкция валится!  
Вот эта ветка имеет HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library
 
имеет такие ключи:
Browsing Path
Debug DCU Path
Namespace Search Path
Package DCP Output
Package DPL Output
Package Search Path
Search Path

 
Причем експорт в файл имеет не такую сортировку - а вот какую:
Подробнее...
 
и впеременную попадает ("ch Path")
 
Используется WinXPSP3

Всего записей: 882 | Зарегистр. 04-09-2008 | Отправлено: 17:00 13-11-2008 | Исправлено: Kilyan, 17:22 13-11-2008
ProstoNaprosto

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток. Существует проблема, на работе комп используется как прокси-сервер(2 локальных подключения через сетевушки) и для это требуется чтобы Интернет-подлкючение было приоритетным, но стоит также программа call-центр на другом сервере, и она собственно тоже требует приоритетного подключения, но уже по Сетевому-подключению. Пока что я меняю приоритетность подключений ручками(Сетевые подключения->Дополнительно->Дополнительные параметры), достаточно запустить прогу call-центра под приоритетным подключением и потом снова поставить инет-подключение приоритетным и все здорово. Так вот можно ли это сделать батником?
 
И еще вопрос, использую батник для остановки-запуска одной программы-сервера.
start /min serv -off
ping ip
start /min serv -on
Пинг в общем-то нужен для создания паузы чтоб сервер успел остановиться, но проблема в том что он не минимизируется также как "start". Можно ли как-то заменить пинг или также сворачивать и его? Так как батник запускается каждые 30 минут.

Всего записей: 1 | Зарегистр. 13-11-2008 | Отправлено: 18:30 13-11-2008 | Исправлено: ProstoNaprosto, 18:31 13-11-2008
stalker1980



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго времени суток!! Народ помогите найти решение, есть сервак DHCP, поднят не давно и как водится в сети остались машины на которых стоят IP в ручную. Есть скрипт который политикой прописан при logon пользователя скидывает настройки на автомат, но на некоторых машинах он не сработал, пока не знаю по какой причине. Вообщем вопрос такого характера, есть ли в командной строке команда которой можно скинуть настройки до автомата, к машинам есть доступ через телнет. Есть Active Directory и работает GPO.
 
Заранее благодарен!
 

Всего записей: 16 | Зарегистр. 28-03-2006 | Отправлено: 11:14 14-11-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kilyan
Попробуем по-другому. Заменяем первую часть батника:

Код:
 
@echo off
del tmp?.txt 2>nul
rem =======================================================
regedit /ea temp1.txt HKEY_CURRENT_USER\Software\Borland\Delphi\7.0\Library
1>temp2.txt sed -n "/\"Search Path/p" temp1.txt
1>temp1.txt sed "s/\\\\/\\/g" temp2.txt
1>temp2.txt sed "s/;/\n/g" temp1.txt
for /f "tokens=*" %%a in ('type temp2.txt ^| find "Search Path"') do set "tempVar1=%%a"
set "tempVar1=%tempVar1:~15%"
echo %tempVar1%>temp1.txt
more /E +1 temp2.txt >> temp1.txt
set "lines=0"
for /f "tokens=*" %%a in (temp1.txt) do set /a "lines+=1"
rem ======================================================
 

Используется утилита sed.exe - http://gnuwin32.sourceforge.net/packages/sed.htm

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:54 14-11-2008
AHAKOHDA



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Elroir
привет. а как через Паузу 2 минуты потом зациклить батник типа опять сначала?  

Код:
@echo off  
tasklist | find /i "Camfrog Video Chat.exe">nul  
if not errorlevel 1 taskkill /F /IM "Camfrog Video Chat.exe"
start "" "C:\Program Files\Camfrog\Camfrog Video Chat\Camfrog Video Chat.exe"
 

далее pause вроде 120?  
а заново к началу как?

Всего записей: 83 | Зарегистр. 10-01-2007 | Отправлено: 22:14 14-11-2008
Elroir



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

Код:
 
@echo off
:loop
tasklist | find /i "Camfrog Video Chat.exe">nul
if not errorlevel 1 taskkill /F /IM "Camfrog Video Chat.exe"
start "" "C:\Program Files\Camfrog\Camfrog Video Chat\Camfrog Video Chat.exe"
ping -n 121 -w 1000 127.0.0.1>nul
goto loop
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:07 14-11-2008
AHAKOHDA



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Elroir
благодарю!
столько новых для меня команд! ping адрес -t это я еще знаю.
но loop и >nul это уже для меня новое
спасибо

Всего записей: 83 | Зарегистр. 10-01-2007 | Отправлено: 10:52 15-11-2008
   

Страницы: 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 102 103 104 105 106 107 108

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd) 2
Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru