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

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

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

Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

   

cchameleone



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

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ more ].  

Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Сценарии Windows

Полезные ссылки:
· Из Windows XP Professional Product Documentation:
» Описание Cmd.exe » Command shell overview
» Using batch files » Using batch parameters » Using filters » Using command redirection operators
 
· Уроки bat-аники (для начинающих): первый и второй
· Курс из 19 лекций "Командная строка и сценарии Windows"
· Попов А. Командная строка и сценарии Windows (PDF). Курс лекций для начинающих
· Бокалий В. Командная строка (pdf-брошюрка в 20 страниц)
· Александров А., Дибров А. Урок bat-аники (pdf)
· Уильям Р. Станек - Командная строка Windows. Справочник администратора
 
· Скрываем консольные окна, Выполнение BAT-скриптов без вызова окна консоли
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)

Всего записей: 2279 | Зарегистр. 16-10-2015 | Отправлено: 09:22 29-04-2016 | Исправлено: Maz, 08:47 26-03-2020
thejustsoul



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

Код:
@echo off
 
call :getDateTime
copy file.txt \\server\file_%year%-%month%-%day%_%hour%-%minute%-%second%.txt  
pause
exit /b
 
:getDateTime
set dd=%date%
set tt=%time%
:: Day
set day=%dd:~0,2%
set day=%day: =0%
:: Month
set month=%dd:~3,2%
:: Year
set year=%dd:~6,4%
:: Hour
set hour=%tt:~0,2%
set hour=%hour: =0%
:: Minute
set minute=%tt:~3,2%
:: Second
set second=%tt:~6,2%
goto :eof

 

Код:
@echo off
for /f %%i in ('powershell -Command "Get-Date -Format 'yyyyMMdd-HHmmss'"') do (
    copy file.txt \\server\file_%%i.txt
)
pause
exit /b

З.Ы. в шапке еще есть примеры..

Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 16:13 28-11-2017 | Исправлено: thejustsoul, 16:19 28-11-2017
Kurunir

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
День добрый!
 
Трагедия просто. Имеется Лицензионный номер Windows, но добрый человек его повредил...
Два символа не известны
 
XXXXX-XXXXX-XXX??-XXXXX-XXXXX
 
Можно ли написать батник чтоб он сгенерировал все возможные варианты номеров в текстовый файл из букв и цифр
 
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
XXXXX-XXXXX-XXXXX-XXXXX-XXXXX
 
вот в таком стиле.
 
 
 

Всего записей: 1059 | Зарегистр. 06-02-2003 | Отправлено: 04:19 29-11-2017
Pasha_ZZZ



Запрет на пост
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kurunir
Цитата:
@echo off
 
set KeyBeg=
set KeyEnd=
 
set KeySym=BCDFGHJKMPQRTVWXY2346789N
 
set KeySym1=%KeySym%
for /l %%a in (1,1,25) do call :GetKS1
goto :eof
 
:GetKS1
set KeySym2=%KeySym%
for /l %%b in (1,1,25) do call :GetKS2
set KeySym1=%KeySym1:~1%
goto :eof
 
:GetKS2
echo %KeyBeg%%KeySym1:~0,1%%KeySym2:~0,1%%KeyEnd%
set KeySym2=%KeySym2:~1%
goto :eof
Заполняете KeyBeg и KeyEnd - и вперед.

Всего записей: 12396 | Зарегистр. 11-03-2002 | Отправлено: 11:13 29-11-2017
Kurunir

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Да, огромное спасибо генерирует!!!!
Но как бы все это в отдельный файл чтоб сохранило...

Всего записей: 1059 | Зарегистр. 06-02-2003 | Отправлено: 15:08 29-11-2017
Pasha_ZZZ



Запрет на пост
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kurunir
запустите батник так
Цитата:
generate.cmd>keys.txt

Всего записей: 12396 | Зарегистр. 11-03-2002 | Отправлено: 15:26 29-11-2017
Kurunir

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

Всего записей: 1059 | Зарегистр. 06-02-2003 | Отправлено: 15:41 29-11-2017
xxxxxUSERxxxxx



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемый Pasha_ZZZ
Объясните по подробнее как заполнить  KeyBeg и KeyEnd?

Всего записей: 87 | Зарегистр. 27-07-2011 | Отправлено: 15:03 30-11-2017
Pasha_ZZZ



Запрет на пост
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
xxxxxUSERxxxxx
После знаков равно написать что нужно

Всего записей: 12396 | Зарегистр. 11-03-2002 | Отправлено: 15:27 30-11-2017
Kurunir

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xxxxxUSERxxxxx
В данном случае начало и конец ключа.  А между ними символы, которых не хватает.

Всего записей: 1059 | Зарегистр. 06-02-2003 | Отправлено: 15:28 30-11-2017
A27

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

Цитата:
Call :TaskList PIDs
Echo.[%PIDs%]
Pause & Exit
 
:TaskList
Set %1=
SetLocal EnableDelayedExpansion
For /f "Tokens=2 Delims=," %%A in ('Tasklist.exe /Fo Csv /Fi "ImageName Eq %App%" /Nh') do Set %1=!%1! %%~A
EndLocal
Call Set %1=%%%1:~1%%
Goto :EOF

 
Проблема:
 
При возвращении из :TaskList переменная PIDs оказывается пустой. Но если её исключить из конструкции Setlocal-For-Endlocal то она становится не пустой. Как заставить её быть не пустой после использования в данной конструкции?

Всего записей: 66 | Зарегистр. 30-03-2017 | Отправлено: 08:55 01-12-2017 | Исправлено: A27, 08:57 01-12-2017
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A27
Цитата:
:TaskList
SetLocal EnableDelayedExpansion
For /f "Tokens=2 Delims=," %%A in ('Tasklist.exe /Fo Csv /Fi "ImageName Eq %App%" /Nh') do Set X=!X! %%~A
EndLocal & Set %1=%X:~1%
Goto :EOF


----------
Мы все умрём. (-:

Всего записей: 4904 | Зарегистр. 23-04-2009 | Отправлено: 10:41 01-12-2017
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
A27
В первый раз понятно, зачем отрезается первый символ - пробел, а при последующих вызовах?
 
Inoz2000
Строго говоря:

Код:
 
:TaskList
For /f "Tokens=2 Delims=," %%A in ('Tasklist.exe /Fo Csv /Fi "ImageName Eq %App%" /Nh') do (
  set Y=%%~A
  SetLocal EnableDelayedExpansion
  if defined X (Set X=!X! !Y!) else set X=!Y!
)
for /f "delims= eol=" %%A in ("!X!") do EndLocal & Set %1=%%A
Goto :EOF
 


----------
Magically yours
Raistlin

Всего записей: 3991 | Зарегистр. 18-04-2005 | Отправлено: 11:31 01-12-2017
Inoz2000



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

Цитата:
а при последующих вызовах?  
при последующих вызовах первый символ - это пять таки пробел
 
вот, например
Код:
@echo off
 
set app=explorer.exe
Call :TaskList PIDs
Echo.[%PIDs%]
 
set app=wmiprvse.exe
Call :TaskList PIDs
Echo.[%PIDs%]
 
set app=svchost.exe
Call :TaskList PIDs
Echo.[%PIDs%]
 
Pause & Exit


----------
Мы все умрём. (-:

Всего записей: 4904 | Зарегистр. 23-04-2009 | Отправлено: 12:14 01-12-2017
GCRaistlin



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

Цитата:
скажите строго причину такого усложнения


Код:
 
set App=Yes!.exe
 

 

Цитата:
при последующих вызовах первый символ - это пять таки пробел

Верно. Невнимательно посмотрел алгоритм. Тогда:

Код:
 
:TaskList
For /f "Tokens=2 Delims=," %%A in ('Tasklist.exe /Fo Csv /Fi "ImageName Eq %App%" /Nh') do (
  set Y=%%~A
  SetLocal EnableDelayedExpansion
  Set X=!X! !Y!
)
for /f "delims= eol=" %%A in ("!X:~1!") do EndLocal & Set %1=%%A
Goto :EOF
 


----------
Magically yours
Raistlin

Всего записей: 3991 | Зарегистр. 18-04-2005 | Отправлено: 15:33 01-12-2017
ALEKCEN



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужно написать необычный батничек - чтоб он закрывал процесс и при этом не выключался (батник),а ждал когда снова запуститься этот процесс...(например,через pause)
но не знаю,как оставлять процесс в памяти:
 
taskkill /f /im utorrent*
pause

----------
...

Всего записей: 685 | Зарегистр. 08-04-2008 | Отправлено: 20:56 01-12-2017
Inoz2000



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
то есть, просто запретить выполнение процесса вы не хотите…

----------
Мы все умрём. (-:

Всего записей: 4904 | Зарегистр. 23-04-2009 | Отправлено: 21:15 01-12-2017
thejustsoul



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

Код:
:loop
taskkill /f /im utorrent*
timeout /t 5 /nobreak >nul
goto loop

Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 04:52 02-12-2017
ALEKCEN



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Запрещать мне и не надо...это нужный процесс,просто...короче я ставлю мобилэдит в песочницу и она пытается поставить дрова,но не может (или не хочет)) и мне надо постоянно прибивать этот процесс,чтоб установка шла дальше...
А пример с юторрентом - был просто пример,там полностью готовый батник,чтоб портабле версию убивать в процессах...а то она бывает там залипает...
В общем,благодарю - всё устраивает,может только таймаут подредактирую,не более того...
Кстати,только сейчас заметил,что язык в батниках напоминает язык в UOPilot...проги для игр
По-этому есть ещё дополнительный вопрос - как прописать поиск процесса ? т.е. идёт поиск,скажем - 60 секунд или 10 попыток и потом батник закрывается...

----------
...

Всего записей: 685 | Зарегистр. 08-04-2008 | Отправлено: 09:18 02-12-2017
Inoz2000



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

Цитата:
FOR /L %переменная IN (начало,шаг,конец) DO команда [параметры]
 
    Набор раскрывается в последовательность чисел с заданными
    началом, концом и шагом приращения. Так, набор (1,1,5)
    раскрывается в (1 2 3 4 5), а набор (5,-1,1) - в (5 4 3 2 1)
разберётесь?

----------
Мы все умрём. (-:

Всего записей: 4904 | Зарегистр. 23-04-2009 | Отправлено: 10:03 02-12-2017
ALEKCEN



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

Всего записей: 685 | Зарегистр. 08-04-2008 | Отправлено: 16:49 02-12-2017
   

Страницы: 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Maz (19-09-2020 13:36): Командная строка, батники, сценарии (bat, cmd) Часть 6


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru