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

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



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
KPOBABAK
Я не совсем сделал как ты просил, а именно пропустил стадию записи в 1.тхт, и она у меня берет имя из файла юзер.тхт потом узнает его id через query user, и подставляет его в tsdiscon ID

Код:
@echo off
for /f "tokens=*" %%a in (user.txt) do (
  for /f "tokens=3 skip=1" %%i in ('query user "%%a"') do tsdiscon %%i
)
 

но это будет работать если команда 'query user "admin"' выдает

Цитата:
ПОЛЬЗОВАТЕЛЬ          СЕАНС              ID  СТАТУС  БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>admin                 rdp-tcp#491         6  Активно          .  19.05.2009 16:17  


Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 15:32 21-05-2009
01MDM



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

Цитата:
можно как то избавиться от промежуточного файла 1.txt?

Можно, не могу проверить за отсутствием утилит.
Попробуй:

Код:
 
@echo off
for /f %%i in (users.txt) do (
    for /f "skip=1 tokens=3" %%i in ('query user %%i') do tsdiscon %%i
)
 

 
 
 
 
 
 
 
 
Добавлено:
HaK1R


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:35 21-05-2009
HaK1R



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

Цитата:
ПОЛЬЗОВАТЕЛЬ          СЕАНС              ID  СТАТУС  БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>user1                 rdp-tcp#491         6  Активно          .  19.05.2009 16:17  
ПОЛЬЗОВАТЕЛЬ          СЕАНС              ID  СТАТУС  БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>user2                 rdp-tcp#491         6  Активно          .  19.05.2009 16:17  

а не  

Цитата:
ПОЛЬЗОВАТЕЛЬ          СЕАНС              ID  СТАТУС  БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>user1                 rdp-tcp#491         6  Активно          .  19.05.2009 16:17  
>user2                 rdp-tcp#491         6  Активно          .  19.05.2009 16:17  

 
 
Добавлено:
01MDM
Я кстати тоже не могу проверить

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 15:41 21-05-2009
KPOBABAK

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R & 01MDM
 
Cпасибо! оба варианта работают
 
Да я знаю что не корректен, но на параметр 'ID' tsdiscon выдает ошибку и ничего не делает, что не мешает, так же если юзер уже отключен, то параметр ID отсутствует и вместо номера сеанса третьим токеном хватается надпись "Диск отключен" что тоже не мешает
 

Всего записей: 70 | Зарегистр. 16-11-2005 | Отправлено: 17:39 21-05-2009 | Исправлено: KPOBABAK, 17:48 21-05-2009
spaulding2005



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ребята подскажите такую вещь.
требуется в батнике либо cmd сделать так чтобы задачи в скрипте запускались одновременно.
 
тоесть к примеру:
 
c:\1.exe
c:\2.exe
 
сейчас такая ситуация когда запускается первый файл второй не запустится пока не закроешь первый.
 
помогите пожалуйста сделать так чтобы они одновременно запускались в скрипте

Всего записей: 387 | Зарегистр. 29-11-2006 | Отправлено: 11:23 22-05-2009
01MDM



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

Код:
 
start "" "c:\1.exe"
start "" "c:\2.exe"
 

 
start /?

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:40 22-05-2009
spaulding2005



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

Всего записей: 387 | Зарегистр. 29-11-2006 | Отправлено: 11:45 22-05-2009
Sandy Ann

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ребята, подскажите, реально ли батником проверить мой текущий ip-адрес и если он попадает в определенный диапазон (95.54.*.*), то он подает команду на перезагрузку модема. И если реально, то помогите нарисовать. А то пров задолбал вконец. Модем Zuxel Prestige 660RU. Заранее большое спасибо

Всего записей: 38 | Зарегистр. 05-02-2008 | Отправлено: 21:03 22-05-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sandy Ann
Переменные выделенные красным поменяй на свои
если не поймешь, что за переменные то
Код:
rasdial /?


Код:
@echo off
set "CONNECTNAME=УкрLAN"
set "USER=Телесей"
set "PASS=123"
 
for /f "tokens=15" %%i in ('ipconfig ^| find "IP"') do (
  set "IP=%%i"
  for /f "tokens=1,2,3,4 delims=." %%a in ("%%i") do (
    if %%a==95 (
      if %%b==54 (
        rasdial "%CONNECTNAME%" /disconnect
        ping -n 11 localhost 1>nul 2>&1
        rasdial "%CONNECTNAME%" %USER% %PASS%
      )
    )
  )
)
 

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 08:21 23-05-2009
Sandy Ann

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
HaK1R
Спасибо, но однако не то. Мне батником надо узнать внешний ip-адрес, а не адрес адаптера, по поводу перезагрузки модема вроде разобрался: будет реализовано на ztnbatch
Код:
ZTnBatch -h 192.168.1.1 -p 1234 -c "sys reboot"
Все равно спасибо за подсказку, хотя вопрос и не закрыт

Всего записей: 38 | Зарегистр. 05-02-2008 | Отправлено: 11:47 23-05-2009 | Исправлено: Sandy Ann, 11:55 23-05-2009
ewild

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

Код:
 
0\1\
0\2\
0\3\
...
0\9\1\
0\9\2\
0\9\3\

 
чтобы скопировать сожержимое всех из них, кроме малого числа строго определенных,
есть удобный инструмент xcopy /exlude:файл_с_перечнем_исключений
 
Вопрос:
А есть ли подобный инструмент для удаления папок?
Чтобы можно было прописать команду удалить_все,_кроме_папок,_не подлежащих_удалению?
 
То есть, на примере указанного списка, из корневой папки 0\ требуется удалить все, кроме 0\9\2\
 
сейчас используется (удалить перечень удаляемого)

Код:
 
rd 0\1\
rd 0\2\
rd 0\3\
...
rd 0\9\1\
REM 0\9\2\ не удалять
rd 0\9\3\

 
лучшее что я сам могу придумать это нечто вида (копировать не удаляемое, удалить все, вернуть неудаляемое обратно)

Код:
 
xcopy 0\9\2\ %tmp%\9\2\
rd 0\
xcopy %tmp%\9\2\ 0\9\2\  
rd %tmp%\9\2\

 
а хотелось бы (удалить все, кроме списка неудаляемого):

Код:
 
команда_удаления /список_неудаляемого

Всего записей: 1087 | Зарегистр. 13-08-2005 | Отправлено: 20:07 23-05-2009 | Исправлено: ewild, 20:12 23-05-2009
timsky



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

Цитата:
timsky  
Вот так ?  
 
Код:chcp 1251>nul & ping -n 1 ya.ru>>file.txt & chcp 866>nul

Спасибо большое, но не работает такой трюк.

Всего записей: 2281 | Зарегистр. 08-06-2004 | Отправлено: 01:18 24-05-2009
Rush

Уже за тридцать...
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ewild
Что-то вроде этого?

Код:
cmd /c for /f "delims=" %i in ('dir "0" /a:d /b /s') do (if /i %i==0\9 (del /q "%i\*.*") else (if /i not %i==0\9\2 rmdir /s /q "%i"))

При большой вложенности, правда, неудобно.  Пакетным файлом уже надо.

Всего записей: 3551 | Зарегистр. 20-11-2003 | Отправлено: 01:40 24-05-2009 | Исправлено: Rush, 02:08 24-05-2009
01MDM



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

Цитата:
Спасибо большое, но не работает такой трюк.

 
Я на прошлой странице тебе написал, что в одну строчку без использования сторонних утилит, ничего не получится. И привел батник, который конвертирует вывод утилиты ping.exe из cp866 в удобно читаемый в блокноте cp1251.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 08:31 24-05-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sandy Ann
а команда ipconfig /all отображает нужный тебе параметр?

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 11:11 24-05-2009
Sandy Ann

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
HaK1R
Увы нет. У меня ADSL авангард. То бишь модем, потом роутер, потом свич, потом я.

Всего записей: 38 | Зарегистр. 05-02-2008 | Отправлено: 14:09 24-05-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sandy Ann
А тебе надо узнать свой IP один раз, или нет. Т.е. я знаю как его узнать без программы, вручную, а потом уже его вставить в прогу.

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 14:56 24-05-2009
Sandy Ann

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Нет. Объясняю ситуацию: айпишник динамический, меняестя ессесно когда захочет. Есть 2 диапазона адресов, которые я могу получить: 78.36.*.* либо 95.54.*.*. С первым диапазоном проблем никаких, со вторым извечные проблемы в серфинге (не открываются ссылки, глючит аська, с почтой проблемы...). С провом ругаться бесполезно, я думаю это многие знают не по-наслышке. Посему идея такая: раз в 10 минут запускается батник, выесняет какой у меня внешниу айпишник, если он находиться в диапазоне 95.54.*.* , то скидывает в лог его, дату и время и дает комманду на перезагрузку модема, выжидает паузу на реконект, проверяет опять. Если нарвались опять на этот диапазон - повторяем цикл, если попали в диапазон 78.36.*.*, то комманда на выход. Проблема осталась только с выяснением моего внешнего айпишника.

Всего записей: 38 | Зарегистр. 05-02-2008 | Отправлено: 15:29 24-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sandy Ann
Можно, но способ не слишком надежный:

Код:
 
@echo off
setlocal
 
cmd /c wget -c http://www.cmyip.com/ 1>nul 2>&1
 
for /f "tokens=4" %%i in ('findstr .title.* index.html') do set "ip=%%i"
echo %ip%
del index.html
 

Потребуется wget.exe

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:35 24-05-2009
HaK1R



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

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 16:09 24-05-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