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

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

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

Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 200 201

   

Maz



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

Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!! Чтобы не копировались концевые пробелы из форума, жмите на ссылку "Редактировать" в посте, и уже из редактора копируйте батник без пробелов.
 
Примечание: Большие куски кода заключайте в тэг [ 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. Справочник администратора
 
· Выполнение BAT-скриптов без вызова окна консоли
· cmdow - изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.7z - Пакет утилит для организации интерфейса в bat-файлах
· blat - отправка почты из консоли
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)(3)
 
· Архив всевозможных версий cmd.exe (от Windows NT 3.10 до Windows 11 +Win95cmd +ReactOS) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на своей версии ОС.
 
· Большой сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 39128 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: metatrop, 07:55 29-11-2022
tirex2k



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

Код:
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\S-1-5-21-1634956486-2724096184-3180261130-1002\Keys]

 
 
Добавлено:
ни чего там не видно, вот

Код:
c:\temp>for /F "tokens=*" %A in (c:\temp\crypto_key.reg) do (
set "string=%A"
 set "modified=!string:S-1-5-21-1634956486-2724096184-3180261130-1002=S-1-5-21-1634956486-2724096184-3180261130-1000!"
 echo !modified! 1>>c:\temp\crypto_key2.reg
)
 
c:\temp>pause

Всего записей: 79 | Зарегистр. 09-12-2004 | Отправлено: 12:53 12-05-2022
GCRaistlin



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

Код:
 
for /F "tokens=*" %A in (c:\temp\crypto_key.reg) do echo
 

Если не выведет ничего, то причина в файле.
И потом, у вас то двойные проценты, то одиночные. Из комстроки !-раскрытие просто так не работает.

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 13:21 12-05-2022
tirex2k



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
%A вылетает cmd
%%А не вылетает но и не чего из файла не показывает, думаю проблема в точках запятых, = может \

Код:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\S-1-5-21-1634057426-2724496682-3180261130-1002\Keys\1032304935530 1115133529 - Copy]
"name.key"=hex:30,21,16,1f,31,30,3b,32,33,30,32,39,33,35,35,33,30,20,31,31,31,\
  35,31,33,33,35,32,39,20,2f,20,43,6f,70,79

Сдается мне так просто не решить, надо покапаться может утилитка какая есть для этих целей, у нир например.
 

Всего записей: 79 | Зарегистр. 09-12-2004 | Отправлено: 14:02 12-05-2022
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tirex2k
А файл c:\temp\crypto_key.reg не в Юникоде случайно?  
Если да, то надо так

Код:
for /F "tokens=*" %%A in ('type c:\temp\crypto_key.reg') do echo %%A  

Всего записей: 690 | Зарегистр. 12-09-2017 | Отправлено: 14:26 12-05-2022 | Исправлено: Fenrizz, 14:33 12-05-2022
GCRaistlin



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

Цитата:
%A вылетает cmd. %%А не вылетает

Непонятно, что и куда у вас вылетает, но использовать одиночный и двойной процент в одной и той же среде бессмысленно. Двойной процент используется в скрипте.
 
Дело, очевидно, именно в кодировке файла.

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 14:56 12-05-2022
tirex2k



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

Код:
@echo off
setlocal enabledelayedexpansion  
set /p old_sid=<c:\temp\sid.txt
for /F "skip=6 tokens=1,2,3,4,5" %%I in ('whoami /user') do set "new_sid=%%J"
 
for /f "tokens=*" %%A in ('type c:\temp\crypto_key.reg') do (
    set "string=%%A"
    set "modified=!string:%old_sid%=%new_sid%!"
    echo !modified!>>c:\temp\crypto_key2.reg
)
endlocal

Всего записей: 79 | Зарегистр. 09-12-2004 | Отправлено: 14:42 13-05-2022
bomzz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет. как проверить файл на занятость?

Всего записей: 3523 | Зарегистр. 29-03-2016 | Отправлено: 16:14 15-05-2022
ipmanyak



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

Код:
 
@echo off
ren "test.txt" "test.txt" 2>nul || (
  echo Sorry, but the file is in use.
  echo Please try again later.
)
pause
 

 
другой вариант

Код:
 
2>nul (                                                  
  >>test.txt (call )                                      
) && (echo file is not locked) || (echo file is locked)  
 
                                               
 
>>  открывает файл  на  дозапись в  конец
будешь тестить, открывай  файл  test.txt  вордом, а не блокнотом. Блокнот не создает  lockfile

----------
В сортире лучше быть юзером, чем админом...

Всего записей: 11977 | Зарегистр. 10-12-2003 | Отправлено: 06:58 16-05-2022
701MB



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

Код:
nircmd sendkey ctrl down
nircmd sendkey shift down
nircmd sendkeypress delete
nircmd sendkey ctrl up
nircmd sendkey shift up


Код:
nircmd sendkeypress ctrl+shift+delete

ощущение, что del не отрабатывает ... в то же время

Код:
nircmd sendkeypress ctrl+shift+tab

нажимается как ни в чём не бывало. печальбеда

Всего записей: 39 | Зарегистр. 04-03-2007 | Отправлено: 03:18 17-05-2022 | Исправлено: 701MB, 03:19 17-05-2022
Fenrizz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
701MB
По NirCmd есть отдельная тема - http://forum.ru-board.com/topic.cgi?forum=5&topic=31255&glp#lt

Всего записей: 690 | Зарегистр. 12-09-2017 | Отправлено: 07:12 17-05-2022 | Исправлено: Fenrizz, 07:12 17-05-2022
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
701MB
https://www.nirsoft.net/articles/delete-chrome-cookies.html

Всего записей: 12814 | Зарегистр. 11-03-2002 | Отправлено: 07:42 17-05-2022
notinthewoods



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

Код:
for /f "delims=" %%a in ('streamlink --http-proxy %proxy% --stream-url %url%') do @set link=%%a
 
set short=%link:~0,5%
 
if %short%==error (
echo Stream OFF
goto metka1
) else (
echo Stream ON
goto metka2
)

Здесь внешнее приложение streamlink через параметр --http-proxy запрашивает некий URL и через параметр --stream-url находит плейлист.
Дальше идет проверка адреса плейлиста по первым 5 символам.
При онлайне link такой: https://...playlist.m3u8
При офлайне link такой: error: No playable streams found on this URL
 
Если прокси рабочие, то всё идет нормально. Но если прокси не срабатывают, то появляется сообщение: Не удается найти указанный файл.
Сообщение на русском и это скорее всего от системы (не от англоязычного стримлинка).
 
Как указать это условие и как указать в комплексе все 3 условия:
Не удается найти указанный файл -> echo Proxy don't work -> goto metka1
иначе
проверка на error и если есть ошибка -> echo Stream OFF -> goto metka1
иначе
echo Stream ON -> goto metka2

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 17:22 17-05-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
notinthewoods
Переменная link при ошибке "Не удается найти указанный файл" - определена?

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 18:37 17-05-2022
notinthewoods



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Полагаю, что нет. Переменная link в моем понимании определяется ПОСЛЕ установления соединения приложения streamlink с требуемым сайтом. При нерабочем прокси такое соединение просто не происходит.
"Не удается найти указанный файл" - мне кажется, это относится к переменной %proxy%

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 19:00 17-05-2022 | Исправлено: notinthewoods, 19:02 17-05-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
notinthewoods
We don't want to think, we want to know ("Криминальное чтиво"). Создайте условия для получения такой ошибки и проверьте.

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 19:03 17-05-2022
notinthewoods



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

Код:
for /f "delims=" %%a in ('streamlink --http-proxy %proxy% --https-proxy %proxy% --stream-url %url%') do @set link=%%a
echo Text1
echo %link%
echo Text2
pause

 
Вот что получил:

Цитата:
Text1
Не удается найти указанный файл.
Text2
Для продолжения нажмите любую клавишу . . .

 
Добавлено:
******
перед FOR указал:
chcp 65001
Ответ:

Цитата:
Active code page: 65001
Text1
The system cannot find the file specified.
Text2
Press any key to continue . . .

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 19:19 17-05-2022
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
notinthewoods
Если конструкцыя  
{for /f "delims=" %%a in ('streamlink --http-proxy %proxy% --https-proxy %proxy% --stream-url %url%') do @set link=%%a}
присваивает переменной link значение "The system cannot find the file specified" или "Не удается найти указанный файл", то это означает {с вероятностью около 100%}, что она не может найти команду streamlink...
Что мешает указать полный путь к ней?..


----------
http://www.imho.ws

Всего записей: 2655 | Зарегистр. 12-10-2006 | Отправлено: 20:30 17-05-2022
notinthewoods



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
Вы невнимательно прочитали, я ведь писал:

Цитата:
При онлайне link такой: https://...playlist.m3u8
При офлайне link такой: error: No playable streams found on this URL
 
Если прокси рабочие, то всё идет нормально.

Как бы я это получил, если бы был не найден путь к стримлинку? Он прописан в Переменных средах.
Стримлинк при некотором значении %proxy% не может достучаться до сайта, ключ --stream-url не отрабатывает свою функцию. В результате: "Не удается найти указанный файл"
 
Добавлено:
*****
Решил проверить так:

Код:
chcp 65001 >nul
for /f "delims=" %%a in ('streamlink --http-proxy %proxy% --https-proxy %proxy% --stream-url %url%') do @set link=%%a
 
set str=%link:~0,3%
 
if %str%==The (
echo Proxy don't work
timeout 30
goto metka
) else (
if %str%==err (
echo Stream OFF
timeout 30
goto metka
)
) else (
Stream ON
)

После запуска батник сразу закрывается. То ли где-то синтаксическая ошибка, то ли в принципе нельзя принимать вот это:
%link%=="The system cannot find the file specified."

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 21:12 17-05-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
notinthewoods
Значит, выводит в stdout. Жаль.
Проверяйте %link% на наличие ":": если есть, то онлайн/офлайн, если нет - ошибка.

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

Всего записей: 4132 | Зарегистр. 18-04-2005 | Отправлено: 21:32 17-05-2022
notinthewoods



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Сделал так, но у меня какая-то ошибка в коде - батник вырубается после запуска:

Код:
for /f "delims=" %%a in ('streamlink --http-proxy %proxy% --https-proxy %proxy% --stream-url %url%') do @set link=%%a
 
set str=%link:~5,1%
if %str% neq ":" (
echo Proxy don't work
timeout 30
goto metka
) else (
set str=%link:~0,5%
if %str%==error (
echo Stream OFF
timeout 30
goto metka
)
) else (
Stream ON
)

Всего записей: 514 | Зарегистр. 31-01-2015 | Отправлено: 22:21 17-05-2022
   

Страницы: 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 200 201

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd
Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru