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

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!)  
Прошу помощи написания скрипта
Суть такова: нужно чтоб при его запуске он предлогал ввести данные для заполнения формы
(есть файл в нем собран шаблон, нужно заменить вводимыми данными заранее заготовленые слова они в скобках пример ниже)
введите название (Zagolovok)
введите свои данные в ipicture (akkount)
введите название файла скрина (Filenamescrin)
введите название компании разработчика (Razrabotchic)
введите платформу (platform)
введите языки (Language)
введите размер(sizi)
введите описание(Opisanie)
введите ссылку(ssilka)
Пример файла

Код:
[html] <div align="center"><span style="font-size: medium">
<strong>Zagolovok </strong>
</span></div><table height="222" width="750"><tbody><tr><td valign="top">  
<strong><span style="color: #000080">Скинсейвы:</span></strong></td>
<td> [lightbox=http://pic.ipicture.ru/uploads/akkount/Filenamescrin|
|]  
[/lightbox] </td></tr><tr><td> <span style="color: #000080">
<strong>Разработчик:</strong></span></td><td> Razrabotchic</td></tr><tr>
<td> <span style="color: #000080"><strong>Платформа:</strong></span>
<br /></td><td> platform</td></tr><tr><td> <span style="color: #000080">
<strong>Язык:</strong></span></td><td> Language</td>
</tr><tr><td> <span style="color: #000080"><strong>Размер:</strong></span></td>
<td> <strong>sizi</strong></td></tr><tr><td valign="top">  
<span style="color: #000080"><strong>Описание:</strong></span></td>
<td> Opisanie</td></tr><tr><td>  
<span style="color: #ff0000"><strong>Скачать:</strong></span></td><td>  
<a href="ssilka" rel="external" title="скачать">
<span style="color: #ff0000">Depositfile</span></a></td></tr></tbody>
</table> [/html]

вот собсна пример как должно получится

Код:
[html] <div align="center"><span style="font-size: medium">
<strong>Your Uninstaller! 2008 pro 6.2.1342 Rus + crack </strong>
</span></div><table height="222" width="750"><tbody><tr><td valign="top">  
<strong><span style="color: #000080">Скинсейвы:</span></strong></td>
<td> [lightbox=http://pic.ipicture.ru/uploads/090507/45858/HgrxPMSTd6.jpg|
|]  
[/lightbox] </td></tr><tr><td> <span style="color: #000080">
<strong>Разработчик:</strong></span></td><td> URSoft</td></tr><tr>
<td> <span style="color: #000080"><strong>Платформа:</strong></span>
<br /></td><td> Windows</td></tr><tr><td> <span style="color: #000080">
<strong>Язык:</strong></span></td><td> мультиязычный(Русский присутствует)</td>
</tr><tr><td> <span style="color: #000080"><strong>Размер:</strong></span></td>
<td> <strong>3.8 мб</strong></td></tr><tr><td valign="top">  
<span style="color: #000080"><strong>Описание:</strong></span></td>
<td> Your Uninstaller 6.2.1342 - программа для замены стандартной &quot;
Установка и удаление программы&quot;.  Your Uninstaller! - корректно и  
полностью удаляет ненужные программы и различный мусор оставленый от вроде  
бы удаленных программ. Она очень проста в использовании, с ее помощью можно
 просканировать систему и она автоматически выявляет &quot;брошенные&quot;
 файлы и ошибочные ключи в реестре. Кроме всего этого позволяет управлять
 программами, запускаемыми при загрузке системы.</td></tr><tr><td>  
<span style="color: #ff0000"><strong>Скачать:</strong></span></td><td>  
<a href="http://depositfiles.com/files/60kus3flk" rel="external" title="скачать">
<span style="color: #ff0000">Depositfile</span></a></td></tr></tbody>
</table> [/html]

и в конце нужно чтоб открыл этот документ для копирования кода и дальнейшейшего его использования.
Конешно этот скрипт мне нужен в html или php (просто я не нашел аналогичных форумов где просят помощи в написании скрипта на html) поэтому прошу здесь написать его на cmd, если конешно ктото знает как реализовать его в html буду в восторге!! Зараннее спасибо за помощь, надеюсь внятно разъяснил суть моего вопроса))

Всего записей: 24 | Зарегистр. 22-03-2009 | Отправлено: 11:35 19-05-2009
guru431

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

Цитата:
del /f /s /q "%Temp%\*" 1>nul  2>&1

 
Спасибо, работает )))
 
А есть какой-то вариант для всего батника сразу?  
В батнике очень много строк, не очень хочется дописывать в конец каждой строки "1>nul  2>&1"

Всего записей: 67 | Зарегистр. 28-02-2007 | Отправлено: 11:51 19-05-2009
01MDM



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

Цитата:
А есть какой-то вариант для всего батника сразу?

 
Можно сам батник запустить:

Код:
 
C:\> your.cmd 1>nul 2>&1
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:49 19-05-2009
guru431

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

Цитата:
C:\> your.cmd 1>nul 2>&1

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

Всего записей: 67 | Зарегистр. 28-02-2007 | Отправлено: 13:05 19-05-2009
01MDM



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

Код:
 
C:\> your.cmd 2>nul
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:39 19-05-2009
SParrow85

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть задача для cmd.exe.
 
Необходимо в папке с подпапками удалить все файлы с заданым расширением и размером больше 1 мб
 
Подскажите как это сделать?

Всего записей: 2 | Зарегистр. 19-05-2009 | Отправлено: 15:30 19-05-2009 | Исправлено: SParrow85, 15:45 19-05-2009
TruLander100

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ подскажите хотябы как реализовать
вывод на экран для ввода с клавиатуры текста
 "введите название (Zagolovok)"  
после ввода чтоб заменял в определенном файле определенное слово на то что ввел с клавиатуры

Всего записей: 24 | Зарегистр. 22-03-2009 | Отправлено: 16:37 19-05-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
TruLander100
Адрес сохранения выделен красным

Код:
@echo off
set /p "Zagolovok=введите название"
set /p "akkount=введите свои данные в ipicture"
set /p "Filenamescrin=введите название файла скрина"
set /p "Razrabotchic=введите название компании разработчика"
set /p "platform=введите платформу"
set /p "Language=введите языки"
set /p "sizi=введите размер"
set /p "Opisanie=введите описание"
set /p "ssilka=введите ссылку"
chcp 1251>nul
(
echo [html] ^<div align="center"^>^<span style="font-size: medium"^>
echo ^<strong^>%Zagolovok% ^</strong^>
echo ^</span^>^</div^>^<table height="222" width="750"^>^<tbody^>^<tr^>^<td valign="top"^>
echo ^<strong^>^<span style="color: #000080"^>Скинсейвы:^</span^>^</strong^>^</td^>
echo ^<td^> [lightbox=http://pic.ipicture.ru/uploads/%akkount%/%Filenamescrin%^|
echo ^|]
echo [/lightbox] ^</td^>^</tr^>^<tr^>^<td^> ^<span style="color: #000080"^>
echo ^<strong^>Разработчик:^</strong^>^</span^>^</td^>^<td^> %Razrabotchic%^</td^>^</tr^>^<tr^>
echo ^<td^> ^<span style="color: #000080"^>^<strong^>Платформа:^</strong^>^</span^>
echo ^<br /^>^</td^>^<td^> %platform%^</td^>^</tr^>^<tr^>^<td^> ^<span style="color: #000080"^>
echo ^<strong^>Язык:^</strong^>^</span^>^</td^>^<td^> %Language%^</td^>
echo ^</tr^>^<tr^>^<td^> ^<span style="color: #000080"^>^<strong^>Размер:^</strong^>^</span^>^</td^>
echo ^<td^> ^<strong^>%sizi%^</strong^>^</td^>^</tr^>^<tr^>^<td valign="top"^>
echo ^<span style="color: #000080"^>^<strong^>Описание:^</strong^>^</span^>^</td^>
echo ^<td^> %Opisanie%^</td^>^</tr^>^<tr^>^<td^>
echo ^<span style="color: #ff0000"^>^<strong^>Скачать:^</strong^>^</span^>^</td^>^<td^>
echo ^<a href="%ssilka%" rel="external" title="скачать"^>
echo ^<span style="color: #ff0000"^>Depositfile^</span^>^</a^>^</td^>^</tr^>^</tbody^>
echo ^</table^> [/html]
) 1>"page.html"
chcp 866>nul
 

 
Добавлено:
SParrow85
в синем указываешь адрес в котором нужно произвести удаление
в красном маски удаляемых файлов через пробел

Код:
@echo off
pushd "C:\test\"
for /r %%i in (*.txt *.bat) do (
  if %%~zi GTR 1048576 (del /f /q "%%i")
)
popd

 
Добавлено:
SParrow85
я не понял, тебе надо в файле или в cmd в одну строчку написать?
для cmd
Код:
for /r "C:\DOCUME~1\" %i in (*.txt *.bat) do @if %~zi GTR 1048576 (del /f /q "%i")

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 18:04 19-05-2009 | Исправлено: HaK1R, 18:05 19-05-2009
TruLander100

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R
Спасибо выручил)) все работает!
 но одно плохо то что все вручную вводить нужно.
 можно как нибудь буфер обмена задействовать?

Всего записей: 24 | Зарегистр. 22-03-2009 | Отправлено: 19:38 19-05-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Наверняка как-то просто, но я не знаю ;(
 
Как из тела батника рядом создать файл 1.txt с определёным содержимым ?
т.е. :
 
бла бла
бла бла
 
:: создаём файл 1.txt с таким содержанием
ведите название файла скрина  
введите название компании разработчика  
ведите платформу  
ведите языки"  
ите размер
 
::продолжаем выполнять задачу
бла бла
бла бла

Всего записей: 1497 | Зарегистр. 28-10-2007 | Отправлено: 23:14 19-05-2009
HaK1R



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

Код:
@echo off
...
...
...
chcp 1251>nul
(
echo ведите название файла скрина
echo введите название компании разработчика
echo ведите платформу
echo ведите языки
) 1>"1.txt"
chcp 866>nul
...
...
 
 

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 23:27 19-05-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R
 
Спасибо !
 
А вот ещё вопрос.
Как-то можно сделать сортировку в файле Report.txt ?
 
- CONS#16_060.USR 05.11.2008 11:59  
Петя - CONS#18_056.USR 19.05.2009 09:35  
- CONS#1_049.USR 29.04.2009 14:17  
- CONS#1_066.USR 29.04.2009 14:39  
Вася - CONS#1_131.USR 18.05.2009 15:59  
Коля - CONS#1_227.USR 18.05.2009 13:33  
- CONS#2_012.USR 08.05.2009 13:21  
- CONS#5_031.USR 05.05.2009 13:20  
- CONS#5_049.USR 06.05.2009 15:01  
 
так чтобы получилось:
 
Вася - CONS#1_131.USR 18.05.2009 15:59  
Коля - CONS#1_227.USR 18.05.2009 13:33  
Петя - CONS#18_056.USR 19.05.2009 09:35  
 
- CONS#16_060.USR 05.11.2008 11:59  
- CONS#1_049.USR 29.04.2009 14:17  
- CONS#1_066.USR 29.04.2009 14:39  
- CONS#2_012.USR 08.05.2009 13:21  
- CONS#5_031.USR 05.05.2009 13:20  
- CONS#5_049.USR 06.05.2009 15:01  

Всего записей: 1497 | Зарегистр. 28-10-2007 | Отправлено: 23:41 19-05-2009 | Исправлено: vitrzn, 23:45 19-05-2009
HaK1R



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

Код:
@echo off
set "FileName=Report.txt"
chcp 1251>nul
for /f "tokens=*" %%a in ('findstr /b /v /c:"-" "%FileName%"') do echo %%a>>"%FileName%_"
echo.>>"%FileName%_"
for /f "tokens=*" %%a in ('findstr /b /c:"-" "%FileName%"') do echo %%a>>"%FileName%_"
chcp 866>nul
del /f /q "%FileName%"
ren "%FileName%_" "%FileName%"
 

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 00:19 20-05-2009 | Исправлено: HaK1R, 00:24 20-05-2009
timsky



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть большая необходимсть запускать пинг с выводом результата в текстовый файл.
Делаю так: ping -n 100 ya.ru > file.txt
 
Проблема в том, что кодировка 866.
Знаю, что chcp 1251 сменит кодировку на виндовую, но как эти 2 команды в одну строку соединить? Понимаю, что бред, но возможно ли это?
 
Т.е. что-то типа этого: ping -n 100 ya.ru (chcp 1251) > file.txt

Всего записей: 2287 | Зарегистр. 08-06-2004 | Отправлено: 01:04 20-05-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R
В очередной раз СПАСИБО !!!
всё как надо работает !

Всего записей: 1497 | Зарегистр. 28-10-2007 | Отправлено: 02:36 20-05-2009
HaK1R



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

Код:
chcp 1251>nul & ping -n 1 ya.ru>>file.txt & chcp 866>nul


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



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

Цитата:
Вот так ?

 
В одну строку, штатными силами - никак:

Код:
 
@echo off
for /f "tokens=*" %%i in ('ping ya.ru') do call:convert "%%i"
goto:eof
 
:convert
chcp 1251 1>nul
if %1=="" (echo. 1>>1.txt) else (echo %~1 1>>1.txt)
chcp 866 1>nul
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 10:41 20-05-2009
KPOBABAK



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подскажите, как организовать отключение пользователей от терминального сеанса?
список пользователей берется из текстового файла (в идеале конечно проверяется входит ли пользователь в определенную группу, и если нет, то отключается, но домен под линуксом, а не АД, не нашел как такую проверку замутить )
 
есть команда query user которая выдает код сеанса в виде
 
ПОЛЬЗОВАТЕЛЬ          СЕАНС              ID  СТАТУС  БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>admin                 rdp-tcp#491         6  Активно          .  19.05.2009 16:
17
 
есть команда tsdiscon ID которая этот сеанс и отключает. Как их совместить?
 
 

Всего записей: 93 | Зарегистр. 16-11-2005 | Отправлено: 16:33 20-05-2009
HaK1R



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

Цитата:
список пользователей берется из текстового файла  

выложи пример списка
 
Добавлено:
KPOBABAK
если в текстовом файле 1.txt

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

то тогда  

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

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



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

Цитата:
HaK1R

 
спасибо! все работает, но файл надо править вручную(
а как сделать чтобы из файлика users.txt вида:  
 
usr1
usr2
usr3
usr4
 
брались узернаймы, для них выполнялось бы определение ID сессий через команду query user имя_юзера, и заносилось последовательно в файл 1.txt  
 
ПОЛЬЗОВАТЕЛЬ          СЕАНС              ID  СТАТУС  БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА
>usr1                 rdp-tcp#491         6  Активно          .  19.05.2009 16:17  
>usr2                 rdp-tcp#491         7  Активно          .  19.05.2009 16:17  
>usr3                 rdp-tcp#491         8  Активно          .  19.05.2009 16:17
 
Добавлено:
разобрался вроде) итоговый файлик
 
@echo off
del 1.txt
for /f "tokens=1" %%i in (users.txt) do query user %%i>>1.txt
for /f "tokens=3 skip=1" %%i in (1.txt) do tsdiscon %%i
 
отключает по найденым ID пользователей (из списка users.txt) от терминального сервера
 
вопрос такой, можно как то избавиться от промежуточного файла 1.txt?

Всего записей: 93 | Зарегистр. 16-11-2005 | Отправлено: 14:02 21-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.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru