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

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

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

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

Открыть новую тему     Написать ответ в эту тему

Maz



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

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

Всего записей: 39615 | Зарегистр. 26-02-2002 | Отправлено: 22:41 20-06-2024 | Исправлено: Maz, 21:52 28-09-2024
BorlandIMHO

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

Цитата:
для бинарного vidio ... curl' в консоль его не выведет.

А вы пробовали?.. Curl, вообще говоря, пофиг, что выдавать в консоль...

Всего записей: 3053 | Зарегистр. 12-10-2006 | Отправлено: 16:23 12-02-2025
LZAA

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

         Пробовал. Иногда без аргумента 'o' ругается.
        Но дело здесь не только в этом. 'VLC' player, например, может воспринять данные из 'stdout' c аргументом '-', но есть приложения, которые этого не могут. Им надо файл 'показать'.

Всего записей: 2588 | Зарегистр. 09-01-2010 | Отправлено: 18:29 12-02-2025
BorlandIMHO

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

Цитата:
Иногда без аргумента 'o' ругается.

Предупреждает, что вы собираетесь выдать в stdout существенный объём бинарных данных.
"-o -" - и не "ругается"...

Цитата:
есть приложения, которые этого не могут. Им надо файл 'показать'.

Ну, весь и смысл "трубы" - в передаче данных следующему приложению минуя сохранение в промежуткочный файл. Т.е. первое приложение в цепочке должно уметь отдавать данные в stdout, последнее - принимать данные из stdin, все промежуточные - и принимать, и отдавать. Приложение, не умеющее читать данные из stdin - можно, разве что, только первым в цепочку ставить...

Всего записей: 3053 | Зарегистр. 12-10-2006 | Отправлено: 22:36 12-02-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
       OK. С этим разобрались.
       За "-o -" спасибо - не знал.

Всего записей: 2588 | Зарегистр. 09-01-2010 | Отправлено: 22:49 12-02-2025 | Исправлено: LZAA, 22:50 12-02-2025
MihailM

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

Всего записей: 2674 | Зарегистр. 19-10-2003 | Отправлено: 09:43 18-02-2025
WiperX



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

Код:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f

Подскажите пожалуйста что нужно добавить для перезагрузки пк через 5 секунд? Заранее спасибо

Всего записей: 1041 | Зарегистр. 17-03-2009 | Отправлено: 09:58 18-02-2025
fscpsd



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

Всего записей: 2030 | Зарегистр. 16-09-2010 | Отправлено: 10:12 18-02-2025
BorlandIMHO

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

Цитата:
что нужно добавить для перезагрузки пк через 5 секунд?


Код:
shutdown /r /t 5 /f

Всего записей: 3053 | Зарегистр. 12-10-2006 | Отправлено: 10:17 18-02-2025
fscpsd



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

Цитата:
5 секунд

Цитата:
/t 300
Ой, прошу прощения, почему-то про 5 минут увидел. И насчёт ключа "/f" тоже не подумал. Уважаемый товарищ BorlandIMHO как обычно прав во всём!

Всего записей: 2030 | Зарегистр. 16-09-2010 | Отправлено: 11:51 18-02-2025
WiperX



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую! Снова прошу помощи)) Создал такой бантик:
Подробнее...
Нужно сделать так, чтобы при выборе пункта 3. Restore patch, восстановить оригинальное  значение файла, учитывая по какому методу был сделан патч (cs или rune). По идее нужно совместить параметр restore_cs и restore_rune

Всего записей: 1041 | Зарегистр. 17-03-2009 | Отправлено: 20:29 22-02-2025 | Исправлено: WiperX, 20:55 22-02-2025
virjokk



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WiperX
Просто сделайте переменную-флаг и устанавливайте ее в конце каждой из процедур 1-2, а в :restore применяйте один из двух методов в зависимости от состояния флага:
Код:
:installcs
<...>
set "method=cs"
goto :menu
 
:installrune
<...>
set "method=rune"
goto :menu
 
:restore
if not defined method echo No patched&goto :menu
if "!method!"=="cs" (
   <restore cs procedure>
) else (  
   <restore rune procedure>
)
goto :menu


Всего записей: 486 | Зарегистр. 19-05-2006 | Отправлено: 22:17 22-02-2025
WiperX



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
virjokk
Приветствую! А Вы не могли бы мой бантик поправить? Просто чтобы понимать как устроено))
---
При выборе restore не правильно определяет патч и в итоге не восстанавливает исходное значение ((

Всего записей: 1041 | Зарегистр. 17-03-2009 | Отправлено: 22:54 22-02-2025 | Исправлено: WiperX, 15:57 23-02-2025
virjokk



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

Всего записей: 486 | Зарегистр. 19-05-2006 | Отправлено: 23:03 22-02-2025 | Исправлено: virjokk, 23:06 22-02-2025
sakatgg

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, есть список в файле list.txt, строк разной длины очень много. Пример:
 

Код:
<hash>=B:\5\1111
<hash>=B:\5\22222
<hash>=B:\5\333333
<hash>=B:\5\4444444

Надо привести его к такому виду

Код:
<hash>1=B:\5\1111
<hash>2=B:\5\22222
<hash>3=B:\5\333333
<hash>4=B:\5\4444444

 
Т.е. ставить номер строки после 6 символа в строке. Не программист. Спасибо

Всего записей: 1258 | Зарегистр. 18-11-2006 | Отправлено: 16:30 26-02-2025 | Исправлено: sakatgg, 16:46 26-02-2025
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sakatgg
Если части до знака = нет спецсимволов (например <> или =) - то, например, так:

Цитата:
@echo off
 
set I=0
del /f /q list2.txt
for /f "tokens=1* delims==" %%a in (list.txt) do call :WriteLine "%%a" "%%b"
goto :eof
 
:WriteLine
set /a "I+=1"
>> list2.txt echo.%~1%I%=%~2
goto :eof

Всего записей: 13300 | Зарегистр. 11-03-2002 | Отправлено: 16:59 26-02-2025
BorlandIMHO

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

Цитата:
есть список ... Надо привести его к такому виду


Код:
setlocal ENABLEDELAYEDEXPANSION
copy /y nul numberedlist.txt
set /A counter=0
for /f "tokens=1,* delims==" %%A in (list.txt) do (
    set /A COUNTER=!COUNTER!+1
    1>numberedlist.txt echo %%A!COUNTER!=%%B
)

Всего записей: 3053 | Зарегистр. 12-10-2006 | Отправлено: 17:01 26-02-2025
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
BorlandIMHO
В предпоследней строке надо >>

Всего записей: 13300 | Зарегистр. 11-03-2002 | Отправлено: 17:10 26-02-2025
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Лучше вообще за блок FOR это вынести. Так файл открывается на запись каждой строки, а так - откроется всего один раз.
А если где-нибудь в строке попадется "!", то получится ерунда.

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

Всего записей: 4374 | Зарегистр. 18-04-2005 | Отправлено: 17:16 26-02-2025
sakatgg

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ, BorlandIMHO
 
Не работают оба метода,  строки вида такого, т.е. спецсимволы есть:

Код:
<hash>=B:\enterprise\Microsoft-Windows-Security-SPP-Component-SKU-Enterprise-Default-Package~31bf3856ad364e35~amd64~~10.0.26100.1.mum
<hash>=B:\enterprise\amd64_microsoft-windows-s..-default-deployment_31bf3856ad364e35_10.0.26100.1_none_fc101cf46129c2f5.manifest
<hash>=B:\enterprise\amd64_microsoft-windows-s..-enterprise-default_31bf3856ad364e35_10.0.26100.1_none_74290f4b92b4ddc3.manifest

 
P.S. Pasha_ZZZ

Цитата:
Ну тогда так:

Скрипт отработал отлично. Спасибо

Всего записей: 1258 | Зарегистр. 18-11-2006 | Отправлено: 17:21 26-02-2025 | Исправлено: sakatgg, 17:49 26-02-2025
Pasha_ZZZ



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

Цитата:
@echo off
 
set I=0
del /f /q list2.txt
for /f "tokens=1* delims==" %%a in (list.txt) do call :WriteLine "%%b"
goto :eof
 
:WriteLine
set /a "I+=1"
>> list2.txt echo.^<hash^>%I%=%~1
goto :eof
 

Всего записей: 13300 | Зарегистр. 11-03-2002 | Отправлено: 17:37 26-02-2025
Открыть новую тему     Написать ответ в эту тему

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

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии: bat, cmd


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru