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

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



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Был блок, так что с опазданием, но пишу...
 
igor_andreev

Цитата:
1.
Код:
@echo off
for /l %%a in (1,1,80) do set /p ="."<nul & ping -n 1 localhost>nul 2>&1
В выполняющемся в данный момент батнике отключи вывод всех команд и ошибок на экран и вставляй изредка по тексту set /p ="."<nul  


Цитата:
Отличный пример... тока вот время от чего зависит...
попробовал сменить ping -n <X> где x - как я думал будут секунды, но увы не то...
А еще было бы лучше если использовать скрипт какой нить чтоб виндусовскую строку (как через msiexec) в окошечке отдельном показал)))  

Как например мне установить всю ту же строку из точек, но только так чтобы она от начала до конца длилась например 5 минут (300 сек)? Еще бы лучше было бы если бы был бы ввод времени через переменную в секундах типа set timeout=300
И по поводу
Цитата:
В выполняющемся в данный момент батнике отключи вывод всех команд и ошибок на экран и вставляй изредка по тексту set /p ="."<nul  

не понял...
 
Повторяюсь...
Сам батничек...

Цитата:
проблема в том что IE не реагирует на ENTER/ESC/SPACE, только мышкой клавишу нажать нада...
еще трабла: Окно IE хочеться поставить на передний план, а оно у меня почему-то сзади CMD
и на последок...:: Можно ли запретить в окне IE клавиши управления окном, т е "Свернуть", "Развернуть" и "Закрыть"??? что бы были лишь активными клавиши "Cancel" и "ОК"...  

KapralBel

Цитата:
cmdow — изменение параметров и видимости дос-окна

не катит - палится каспером ((( Утилитку уже узал раньше, пока ее кодик в БД антивирусов не забили, а жаль хороша была...
Цитата:
функция "Запуск в режимах MIN MAX HIDE" - так же мне не подходит, т к не пользуюсь данным типом ПО

я как раз и имел ввиду cmdow. Но нашел маленькое решение...
 
Скриптик на Яве
 
HIDE
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",0);

Standart
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",1);

MIN
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",2);

FullScreen
Код:
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("iexplore.exe",3);

Вот...
 
Добавлено:
Cosmogor

Цитата:
Держи дружище.
http://dvusrachek.ifolder.ru/13501855
 

bat2exec - не принял к компеляции следующую строку типа: if /i %aa%==aa goto aa

че делать?

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 21:35 15-08-2009 | Исправлено: ScreamWolf, 21:38 15-08-2009
romby



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как отличить переменную от папки с таким же названием?
( Например, есть переменная TEMP и папка, которая называется так же - %TEMP% )

Всего записей: 1767 | Зарегистр. 09-02-2006 | Отправлено: 23:02 15-08-2009
Cosmogor



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

Цитата:
что показывают эти три команды:

Вот что показывает:
fsutil fsinfo drives
Диски:   А:\ С:\ D:\ E:\ F:\
 
fsutil fsinfo drivetype буква:
буква:   — Нет  такой  корневой  папки
 
wmic cdrom where id="буква:" get drive /value
Отсутствуют  экземпляры класса.

 

Цитата:
Так же попробуй:  
 
Код:  
@echo off  
setlocal  
   
for /f "tokens=1,2 delims=\" %%i in ('fsutil fsinfo drives ^| more') do call:1 "%%i" "%%j"  
goto:eof  
   
:1  
set "drive=%~1%~2"  
fsutil fsinfo drivetype %drive:~-2%  

 
А вот это, то что доктор прописал, спасибо

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 23:25 15-08-2009
ewild

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

Цитата:
vitrzn пишет:
А как можно удалить из папки все файлы, за исключением 1.txt и 1.bat ?  
Пробовал по аттрибутам или предварительно перемещать (что нужно) перед удалением, но это не совсем удобно. Надо удалить не ВСЁ, а всё кроме


Цитата:
01MDM пишет:
vitrzn

Код:
@echo off  
for /f "tokens=*" %%i in ('dir /b /a-d C:\test ^| findstr /v "1.txt 1.bat"') do del "C:\test\%%i"

 
Моя созвучная задача:
Удалить ВСЁ великое множество каталогов из "C:\test" КРОМЕ подпапок "C:\test\111" и "C:\test\222\333"
 
Решение в два этапа:

Код:
for /f "tokens=*" %%i in ('dir /b /a:d C:\test\2 ^| findstr /v "333"') do rd /s /q "C:\test\222\%%i"
for /f "tokens=*" %%j in ('dir /b /a:d C:\test ^| findstr /v "111 222"') do rd /s /q "C:\test\%%j"

 
Решение в один этап, не получилось*:

Код:
for /f "tokens=*" %%j in ('dir /b /s /a:d C:\test ^| findstr /v "111 333"') do rd /s /q %%j

* так как команда удалит "C:\test\222" до отфильтровки "C:\test\222\333"
 
Примечание:
dir /b /a:d возвращает имена папок (e.g. "111" "222")
dir /b /s /a:d возвращает полные пути (e.g. "C:\test\111" "C:\test\222" "C:\test\222\333")

 
 
01MDM
Огромное Спасибо! Благодаря Вашему примеру решилась давнишняя мечта поэта! =)

Всего записей: 1089 | Зарегистр. 13-08-2005 | Отправлено: 02:01 16-08-2009 | Исправлено: ewild, 14:36 16-08-2009
01MDM



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

Цитата:
буква:   — Нет  такой  корневой  папки

 
Вообще-то подозревалась буква одного из существующих дисков (c:, d:, e: и т.д). Для проверки.


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:34 16-08-2009
ScreamWolf



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

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 15:58 16-08-2009 | Исправлено: ScreamWolf, 15:58 16-08-2009
Cosmogor



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

Цитата:
 
bat2exec - не принял к компеляции следующую строку типа: if /i %aa%==aa goto aa  
че делать?

 
Попробуй другие компиляторы заюзать, у меня вообще  
bat2exec почему то не работает. , хотя раньше работала.
 
Да, ещё для твойх задач идеальное средство
будет autoit . Эксперементируй

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 18:46 16-08-2009 | Исправлено: Cosmogor, 18:55 16-08-2009
ScreamWolf



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

Цитата:
Да, ещё для твойх задач идеальное средство
будет autoit . Эксперементируй  

Скачал - будем пробовать познавать =)

Всего записей: 197 | Зарегистр. 15-05-2009 | Отправлено: 12:44 17-08-2009
NetOptic



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте! Нужна ваша помощь.
Я при помощи ".bat" файла и консольной программы " Ztnbatch " рву "PPPoE" сессию на модеме "Zyxel P660RU EE" подключенного к ПК по технологии "Ethernet" и настроенного в режиме "Routing".

Код:
 
ztnbatch.exe -h 192.168.1.1 -p 1234 -c "wan adsl reset"
ping -n 60 localhost>nul
 

Задача: Необходимо чтобы программа ".bat" закрывалась только после того, когда на модеме поднимется "PPPoE" сессия, т.е, когда модем получит новый "IP" адрес. Есть команда "wan adsl status" для проверки статуса "PPPoE" сессии. Возможно ли чтобы после разрыва "PPPoE" сессии программа ".bat" не закрывалась до тех пор, пока на модеме не поднимется "PPPoE", если "PPPoE" не поднимается, то она продолжает ждать, пока не поднимется "PPPoE"?
Команда "wan adsl status" имеет следующие статусы

Цитата:
 
current modem status: up
current modem status: down
current modem status: initializing
 

Всего записей: 1421 | Зарегистр. 29-11-2006 | Отправлено: 10:01 18-08-2009
7b

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вопрос.
 
Есть "blat — отправка почты из консоли", а есть ли что нить похожее, но на прием почты?
Хочется, что бы почта сама сваливалась в указанную мною папку.
Допустим письмо прилетело на ???@yandex.ru, прога просканала мыло и сохранила на d:\Почта.(файлы,html,txt).
 
Если нет консольной утилиты, то не могли бы посоветовать, какой нить софт?
Сам юзаю "the bat" у него есть возможность использовать макросы, но ничего подходящего для себя не нашел.
 
Заранее спасибо!

Всего записей: 4 | Зарегистр. 11-08-2009 | Отправлено: 15:14 18-08-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Таскаю ноут с собой на работу, и каждый раз меняю настройки ЛАН соединения. Проблема уже озвучивалась в какой-то теме на  ru-board и кто-то предлагал свой вариант решения, но я не могу найти.
В принцыпе если тко-нибудь напомнит как сохранять настройки в файл и потом от туда их брать, остальное сдалаю сам.
если не ошибаюсь то это в netsh lan

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 17:09 18-08-2009
noklaf



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На терминальном сервере цепляясь по RDP запускается программа.
Как сделать так, что бы выскакивало окно какую именно программку запустить (Например: если вы хотите запустить 1С8 нажмите да, если 1С77 нажмите нет).  
Очень часто встречающаяся проблема =)

Всего записей: 93 | Зарегистр. 11-03-2005 | Отправлено: 17:31 18-08-2009
HaK1R



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

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 17:40 18-08-2009
mozers



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
7b
Цитата:
Есть "blat — отправка почты из консоли", а есть ли что нить похожее, но на прием почты?
GetMail того же автора.

Всего записей: 2187 | Зарегистр. 03-01-2002 | Отправлено: 18:07 18-08-2009
01MDM



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

Цитата:
Таскаю ноут с собой на работу, и каждый раз меняю настройки ЛАН соединения.

Да, как-то обсуждалось. Кажется пришли к выводу, что лучше всего сохранить настройки для дома и для работы в разные файлы. И в зависимости от того где находишься, их применять. Смотри в сторону 'netsh dump' и netsh exec'

Код:
 
экспорт:
netsh dump 1>home.txt
или  
netsh interface ip dump 1>home.txt
 
импорт:
netsh exec home.txt
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:40 18-08-2009 | Исправлено: 01MDM, 18:41 18-08-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
01MDM
Я сделал по-другому.
чтобы настройки были в одном файле
вот только одна проблема. у одного соединения один dns  а у другого еще и альтернативный есть.
если знаешь как добавить альтернативный dns то буду признателен

Код:
@echo off
ping -n 1 "ya.ru" 1>nul&& goto :end
echo Change sittengs
(netsh interface ip show address | findstr /e 10.192.68.236 1>nul) && (
  echo Unet
  cnic "Lan" -d
  netsh interface ip set address name="Lan" static 10.50.158.60 255.255.0.0 10.50.9.100 1 1>nul
  netsh interface ip set dns name="Lan" static 91.192.189.2 1>nul
  cnic "Lan" -c
  goto :end
) || (
  echo Interzet
  cnic "Lan" -d
  netsh interface ip set address name="Lan" static 10.192.68.236 255.255.252.0 10.192.68.1 1 1>nul
  netsh interface ip set dns name="Lan" static 192.168.248.21 1>nul
  cnic "Lan" -c
  goto :end
)
 
:end
echo Ok
pause 1>nul

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 20:58 18-08-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R
Не знаю. Ты все таки создай файл настроек (netsh dump), это netsh-скрипт, может там найдешь ответ.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:49 18-08-2009
Ortios



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

Цитата:
как добавить альтернативный dns

На память не помню но, по-моему, как-то так:

Код:
netsh interface ip set dns name="Lan" static 192.168.248.22  index=2
 

Всего записей: 73 | Зарегистр. 24-12-2007 | Отправлено: 21:54 18-08-2009
ewild

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

Цитата:
как добавить альтернативный dns то буду признателен

если

Код:
set dns - настройка адреса сервера DNS для указанного интерфейса.
Синтаксис
set dns [name=]имя_интерфейса [source=]{dhcp | static }[addr=]{адрес_IP | none} [register=]{none | primary | both}  

то

Код:
add dns - добавление сервера DNS в список серверов DNS указанного интерфейса.
Синтаксис
add dns [name=]имя_интерфейса [addr=] адрес_DNS [[index=]индекс_DNS]

Таким образом для добавления DNS:

Код:
netsh interface ip add dns "Lan" 192.168.248.22

 
см. Команды Netsh для интерфейса IP

Всего записей: 1089 | Зарегистр. 13-08-2005 | Отправлено: 23:20 18-08-2009
HaK1R



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

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 03:22 19-08-2009 | Исправлено: HaK1R, 03:26 19-08-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru