Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd)

Автор: cchameleone
Дата сообщения: 29.04.2016 09:22
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2) (часть 3) (часть 4)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.


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

Примечание: Большие куски кода заключайте в тэг [no][more][/no]

Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 12

Полезные ссылки
· Из 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. Справочник администратора

· Скрываем консольные окна
· cmdow — изменение параметров и видимости дос-окна, Статья в КОМПЬЮТЕРРАONLINE
· Набор GNU утилит для win32
· HS_Packet.zip - Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· blat — отправка почты из консоли
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Easy Batch Builder+Rus+Crack - Редактор BAT файлов.Через графический интерфейс программы вы сможете быстро конструировать пакетные файлы практически любой сложности. (В комплекте есть Лоадер созданный с помощью Sign Of Misery некоторые антивирусы обзывают его вирусом. Вам решать: ставить или не ставить) (ЗЕРКАЛО)

· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек) ещё и ещё
· Переход из 32-битной версии cmd.exe в 64-битную (1) (2)
Автор: shok
Дата сообщения: 30.04.2016 00:41
YuS_two

Цитата:
1. Что такое CMD?
2. Что такое successful? Строка из файла, результат вывода команды или что?
3. Расшифруйте, как понимать последнюю строку про код возврата?


сори, я путаюсь в терминах и, возможно если буду пытаться ответить на эти вопросы, то запутаюсь совсем.

Pasha_ZZZ

огромное спасибо за помощь, трохи доработал. проблему "errorlevel" решил при помощи grep


Код: ..............//Nologo /act|grep.exe "successful">nul
if errorlevel 1 goto :KeyInvalid
hs_color 10 0
echo.^<Product activation successful^>
echo.Key '%1' valid.
echo.%1>>key_valid.txt
hs_color 7 0
goto :eof
:KeyInvalid
hs_color 12 0
echo.^<Product activation error^>
echo.Key '%1' invalid.
echo.%1>>key_invalid.txt
hs_color 7 0
goto :eof

Автор: DenisRodman
Дата сообщения: 03.05.2016 15:20
Подскажите как решить такую задачу. Необходимо создать файл .bat , чтобы он удалил все папки находящиеся в этой директории %LOCALAPPDATA%\Microsoft\Windows\WER\ReportArchive\ и не просто все, а те папки в которых имеется часть названия PowerDVD.

То есть полное имя папки такое AppHang_PowerDVD.exe_855a79761eb6162c2f905f37abc49940bedffa_19720bf2, но их там много и они все разные отличия идут как в начале т.е. вместо AppHang, что-то другое идёт, далее идёт PowerDVD, ну и концовки имени папки _855a79761eb6162c2f905f37abc49940bedffa_19720bf2 тоже всегда разные. Единственно, что общее у всех папок, это часть имени папки PowerDVD. Вот нужно по этой маске сделать поиск и удаление таких папок, они будут не пустые с файлами, поэтому необходимо именно удаление этих папок со всем содержимом.

UPD:
Выполнено.
Автор: Igimon
Дата сообщения: 04.05.2016 01:02
Столкнулся со следующей задачей, в разделе реестра по адресу "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}" идут четырехзначные номера сетевых интерфейсов 0001, 0002, 0003 и т.д.

В этих подразделах нужно найти строку REG_SZ содержащую "Realtek PCIe GBE Family Controller", через REG QUERY и FIND строку эту я нахожу, у меня она находится здесь: "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\0012"

имеется также reg файл со следующим содержанием "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}\XXXX\Ndi\params"

Каким образом можно реализовать поиск строки "Realtek PCIe GBE Family Controller" с последующим вытаскиванием в переменную значения "0012" и с последующим вписыванием этого значения в reg файл заменив ею XXXX ?
Автор: YuS_two
Дата сообщения: 04.05.2016 05:09
DenisRodman

Цитата:
Подскажите как решить такую задачу.


Код: @echo off
cd /d "%LOCALAPPDATA%\Microsoft\Windows\WER\ReportArchive\"
if errorlevel 1 echo error&&pause&&exit
for /f "delims=" %%i in ('dir /s /b/ad^|findstr /i /c:"powerdvd"') do rd /s/q "%%~i"
Автор: DenisRodman
Дата сообщения: 04.05.2016 08:38
YuS_two
Большое спасибо, всё получилось.
Автор: tatikouserforum
Дата сообщения: 09.05.2016 14:28
Подскажите, что нужно прописать в ярлыке программы, чтобы одновременно с этой программой запускался нужный (указанный) бат-файл (.bat)? И можно ли вообще такое сделать?
Автор: YuS_two
Дата сообщения: 09.05.2016 14:43
tatikouserforum

Цитата:
И можно ли вообще такое сделать?

Так нужно создать ещё один сценарий в котором уже прописать запуск этой программы и необходимый батник...
Автор: tatikouserforum
Дата сообщения: 09.05.2016 16:06
to YuS_two

Цитата:
Так нужно создать ещё один сценарий в котором уже прописать запуск этой программы и необходимый батник...

Может сможете помочь?
Расположение программы - E:\Program Files\opera.exe
Расположение бат-файла - E:\Program Files\opera.bat
Вот только в ярлыке программы уже имеется:
"E:\Program Files\Opera\opera.exe" --disable-background-networking --allow-outdated-plugins
Сам батник вот такой:
del /q /f "E:\Program Files\Opera\profile\data\"\ssdfp*
Заранее благодарен...
Автор: YuS_two
Дата сообщения: 09.05.2016 17:58
tatikouserforum
Так сделайте один батник:

Код: start "" "E:\Program Files\Opera\opera.exe" "--disable-background-networking --allow-outdated-plugins"
del /q /f "E:\Program Files\Opera\profile\data\"\ssdfp*
Автор: tatikouserforum
Дата сообщения: 09.05.2016 18:41
YuS_two, спасибо, работает.
Цитата:
Вопрос только в том, когда именно необходимо, чтобы отработало удаление? После закрытия Оперы или во время её работы, или же до запуска?

Лучше, конечно, после закрытия
Автор: YuS_two
Дата сообщения: 09.05.2016 18:57
tatikouserforum

Цитата:
после закрытия

тогда так:

Код: "E:\Program Files\Opera\opera.exe" "--disable-background-networking --allow-outdated-plugins"
del /q /f "E:\Program Files\Opera\profile\data\"\ssdfp*
Автор: tatikouserforum
Дата сообщения: 09.05.2016 19:30
YuS_two, спасибо!
Автор: root00
Дата сообщения: 16.05.2016 16:55
У меня есть робочий код, но в нем пару проблем..


Код: @echo off
taskkill /im chrome.exe
taskkill /im hl.exe
taskkill /im sndvol.exe
taskkill /im wnplayer.exe
start "chrome" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -refresh
start /min "Audio" "C:\Windows\System32\SndVol.exe"
start "cs" "C:\Users\pol20\Desktop\cs"
start /min X:\1.m3u /min
exit\b
Автор: GCRaistlin
Дата сообщения: 16.05.2016 17:51
root00
Не выйдет ни того, ни другого.
Автор: MisHel64
Дата сообщения: 16.05.2016 22:57
GCRaistlin Выйдет, причем легко.
root00 1) Запускай не "X:\1.m3u" а программу которая обрабатывает этот файл, а список передай в качестве параметра.
Ключи имеют наклон в другую сторону, и лучше добавлять пробелы, то есть не "exit\b" а "exit /b".
3) Внимательно посмотри справку на EXIT. Не нужно ставить /B вообще.
4) Можно в свойствах командного файла указать, что нужно запускать свернутым.

Автор: GCRaistlin
Дата сообщения: 16.05.2016 23:10
MisHel64
1. В условиях задачи не сказано, что имя программы, обрабатывающей X:\1.m3u, известно заранее.
3. В условиях задачи не сказано, что скрипт не может запускаться из другого скрипта или сеанса консоли, а в этом случае EXIT и EXIT /B - отнюдь не одно и то же.
4. В свойствах скрипта нельзя указать, что его нужно запускать свернутым. Можно указать в свойствах ярлыка, но - см. п. 3.
Автор: MisHel64
Дата сообщения: 17.05.2016 05:06
О... На троллля нарвался
1) Бред.
3) Бред. Перечитай внимательнее исходное.
4) Монописсуально, а потому очередной бред.
5) Если предложили решение, о котором ты не догадался в силу некомпетентности или невнимательности, не нужно из пальца высасывать оправдания. Будь проще, или сходи к психиатру. Сейчас это лечат.
Автор: YuS_two
Дата сообщения: 17.05.2016 05:56
MisHel64
Вы ошибаетесь. GCRaistlin - далеко не тролль. И компетентности ему вполне хватает.
И вообще, зачем вы переходите на личности? Вас никто не троллил.
Лучше аргументированно подтвердите то, что предложили, только с проверкой, а не в виде теоретизирования и ответа оппоненту аргументом типа "бред"... это вообще не аргумент.
Автор: MisHel64
Дата сообщения: 17.05.2016 17:50
YuS_two А я вижу ключевые моменты троллинга. И вижу некомпетентные утверждения. Развернуть подробней, почему я считаю аргумент типа "спрашивающий не знает, какая программа у него ассоциирована с плей листами"?
По пункту 3 то же разворачивать почему утверждение бредовое? Причем как минимум по двум причинам.
Я не считаю нужным, аргументированно опровергать высосанные из пальца бредовые аргументы, по этому и ограничиваюсь констатацией факта. Если тело считает, что я не прав, пусть приводит аргументированные аргументы.
Автор: GCRaistlin
Дата сообщения: 17.05.2016 18:26
MisHel64

Цитата:
А я вижу ключевые моменты троллинга.

Это бывает. Кому евреи везде мерещатся, кому тролли.

Цитата:
И вижу некомпетентные утверждения

Я тоже вижу. В стиле: "Я ж всегда батники через ярлыки запускаю - зачем кому-то запускать их иначе?"

Цитата:
Развернуть подробней, почему я считаю аргумент типа "спрашивающий не знает, какая программа у него ассоциирована с плей листами"?

Разверните, разверните. Заодно попробуйте запустить fb2k в свернутом виде, явно указывая экзешник.

Цитата:
По пункту 3 то же разворачивать почему утверждение бредовое? Причем как минимум по двум причинам.

Ух ты, аж по двум? Ну, после того как ознакомитесь с хелпом к EXIT, - welcome.

Цитата:
Я не считаю нужным, аргументированно опровергать высосанные из пальца бредовые аргументы, по этому и ограничиваюсь констатацией факта.

Д'Артаньян детектед.
Автор: KOMMEHTATOPz
Дата сообщения: 18.05.2016 13:29
Доброго времени .
Запретил программе связь с ip- адресом с помощью батника:

netsh ipsec static add policy name="IDM Blocker"
netsh ipsec static add filteraction name="Block" action=block
netsh ipsec static add filter filterlist="IDM" srcaddr=me dstaddr=121.23.0.221
netsh ipsec static add rule name="IDM" policy="IDM Blocker" filterlist="IDM" filteraction="Block"
netsh ipsec static set policy name="IDM Blocker" assign=y

Помогите с батником для отката ?
Автор: Pasha_ZZZ
Дата сообщения: 18.05.2016 16:05
KOMMEHTATOPz
А было там в ipsec что-то нужное? Политики, списки фильтров, действия? Если ничего не нужно - то
Цитата:
netsh ipsec static delete all
Автор: KOMMEHTATOPz
Дата сообщения: 18.05.2016 16:20
Pasha_ZZZ
А было там в ipsec что-то нужное?
Это я кпримеру

Выборочное удаление возможно?
Автор: Pasha_ZZZ
Дата сообщения: 19.05.2016 09:18
KOMMEHTATOPz
Цитата:
netsh ipsec static delete policy name="IDM Blocker"
netsh ipsec static delete filterlist="IDM"
netsh ipsec static delete filteraction name="Block"
Автор: EwgeniyD
Дата сообщения: 19.05.2016 10:55
Подскажите пжл.
Сайт одноклассники имеет адреса
5.61.23.5
217.20.155.58
217.20.156.159
Как на компе наглухо запретить связь с ip- адресами с помощью батника?
Автор: Pasha_ZZZ
Дата сообщения: 19.05.2016 11:04
EwgeniyD
Дак выше вполне рабочий пример, просто команд filter filterlist несколько, для каждого IP-адреса
Автор: toshanNEW
Дата сообщения: 20.05.2016 10:26
Здравствуйте!
Помогите решить такую задачу:

Есть результат команды ipconfig на нескольких ПК в текстовом файле:
[no]...
Имя компьютера . . . . . . . . . : NAME1
...
Физический адрес. . . . . . . . . : MAC1
...
Имя компьютера . . . . . . . . . : NAME2
...
Физический адрес. . . . . . . . . : MAC2
...
[/no]
Нужно получить файл, со списком:
[no]
NAME1    MAC1
NAME2    MAC2
...
[/no]
Автор: KOMMEHTATOPz
Дата сообщения: 21.05.2016 12:27
Доброго времени .
Есть возможность посмотреть заблокированные ip в командной строке?
Автор: sergiokapone
Дата сообщения: 22.05.2016 09:58
Прдскажите, пожалуйста, как можно организовать консольный progress bar? Заранее не известно, сколько времени потратит консольная утилита на выполнение. Спасибо.

Страницы: 1234567

Предыдущая тема: Дубль


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.