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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 45 46 47 48 49 50 51 52 53 54 55 56 57 58

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

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.51 до Windows 10) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 4.0, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на текущей версии ОС. Ссылки wdho.ru tinyupload.com dbree.org
 
· Сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 37429 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: Maz, 07:16 24-04-2021
kot1313



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

Всего записей: 2372 | Зарегистр. 11-12-2002 | Отправлено: 21:55 03-11-2020 | Исправлено: kot1313, 19:32 21-01-2021
GCRaistlin



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

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

Всего записей: 3071 | Зарегистр. 18-04-2005 | Отправлено: 22:13 03-11-2020
kot1313



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

Всего записей: 2372 | Зарегистр. 11-12-2002 | Отправлено: 22:42 03-11-2020 | Исправлено: kot1313, 19:31 21-01-2021
WiperX



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привествую! С помощью утилиты SetACL хочу сделать запрет на изменение ветки реестра. Бантик правильный? Если нет, поправьте пожалуйста :

Код:
@echo off
if "%programfiles(x86)%XXX"=="XXX" goto 32BIT
echo 64-bit Windows installed
SetACLx64.exe -on "hklm\SOFTWARE\Netgate\FortKnox Firewall"  -ot reg -actn ace -ace "n:System;p:set_val;m:deny"
goto END
:32BIT
echo 32-bit Windows installed
SetACLx32.exe -on "hklm\SOFTWARE\Netgate\FortKnox Firewall"  -ot reg -actn ace -ace "n:System;p:set_val;m:deny"
:END

Всего записей: 806 | Зарегистр. 17-03-2009 | Отправлено: 23:04 03-11-2020 | Исправлено: WiperX, 23:05 03-11-2020
Smitis



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

Цитата:
Хотя очень странно, что MS не реализовала эту простейшую команду

Это уже не простейшая команда. Но тем не менее MS уже реализовала - всё что Вы хотели делать с hosts, можно делать на WSH или PowerShell.

----------
Разум когда-нибудь победит

Всего записей: 2409 | Зарегистр. 09-02-2003 | Отправлено: 23:16 03-11-2020
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, что-то совсем запутался, каким образом в зависимости от разрядности ОС прочитать и записать в переменную (например, %InstallPath%) значение ключа системного реестра?
На x86 ОС: HKLM\SOFTWARE\MyProgram
На x64 ОС: HKLM\SOFTWARE\WOW6432Node\MyProgram
Значение параметра, напрмер, - InstallDir.
Если можно, пожалуйста, приведите конкретный пример.

Всего записей: 657 | Зарегистр. 19-02-2008 | Отправлено: 23:44 03-11-2020 | Исправлено: Artem_Butenko, 23:47 03-11-2020
VVL99

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

----------
Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 00:28 04-11-2020 | Исправлено: VVL99, 00:32 04-11-2020
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VVL99
 
Спасибо Вам за участие.
Нашёл несколько ошибок:
1. Не выводит полные пути. Например, Files (x86)\MyProgram\; Files (x86)\MyProgram\; Files\MyProgram\
2. Не работает с длинными именами параметров ключа реестра. Например, InstallationDirectory.
3. Каким образом в x86 ОС считывать значение параметра ключа только из "HKLM\SOFTWARE\MyProgram", а в x64 ОС только из "HKLM\SOFTWARE\WOW6432Node\MyProgram"
Буду признателен Вам за помощь.
 
Попробовал сделать так, вроде работает. Только ли это правильно и рационально?

Всего записей: 657 | Зарегистр. 19-02-2008 | Отправлено: 01:58 04-11-2020 | Исправлено: Artem_Butenko, 02:28 04-11-2020
VVL99

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

----------
Гомосексуальность среди модераторов не является психическим расстройством, несмотря на синонимы этого понятия в русском языке.

Всего записей: 4158 | Зарегистр. 03-02-2011 | Отправлено: 04:12 04-11-2020
Death_INN

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

Всего записей: 2251 | Зарегистр. 24-10-2002 | Отправлено: 20:53 04-11-2020 | Исправлено: Death_INN, 20:53 04-11-2020
kot1313



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
GCRaistlin
VVL99
Smitis
ozr1
Спасибо за помощь с cmd для файла  hosts


Всего записей: 2372 | Зарегистр. 11-12-2002 | Отправлено: 23:33 04-11-2020
lexapass



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

Код:
for %%f in (*.txt) do find "xml" "%%f" >nul || echo %%f

Всего записей: 550 | Зарегистр. 11-10-2004 | Отправлено: 00:00 05-11-2020
BorlandIMHO

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

Цитата:
... вывести список тех файлов, в содержимом которых не будет встречаться "xml" без кавычек.


Код:
@echo OFF
for /F "usebackq tokens=1 delims=" %%A in (`dir /B *.txt`) do 1>nul 2>&1 find /i "xml" "%%~A" || echo "%%~A"  not contains "xml"


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

Всего записей: 1237 | Зарегистр. 12-10-2006 | Отправлено: 00:03 05-11-2020 | Исправлено: BorlandIMHO, 00:04 05-11-2020
bytie

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
для CMD ripgrep --files-without-matches --word-regexp "\"xml\""
для PowerShell ripgrep --files-without-matches --word-regexp '\"xml\"'

Всего записей: 261 | Зарегистр. 18-08-2005 | Отправлено: 00:06 05-11-2020
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO, bytie, благодарю
 
Как обойти ограничение в 64 символа в имени файла?

Код:
for %%a in ("C:\1\*") do echo %%~na

Всего записей: 2251 | Зарегистр. 24-10-2002 | Отправлено: 14:25 05-11-2020 | Исправлено: Death_INN, 14:25 05-11-2020
BorlandIMHO

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

Цитата:
ограничение в 64 символа в имени файла

О каком ограничении речь идёт?
Насколь помню, в NTFS ограничение в 255 символов...
Проверил на натуре, приведённый Вами код нормально отрабатывает при наличии {специально созданного} файла с именем длиной более 170 символов...

Код:
SW_DVD9_NTRL_Win_10_1809_64Bit_MultiLang_FOD_1_X21-91307ISOSW_DVD9_NTRL_Win_10_1809_64Bit_MultiLang_FOD_1_X21-91307ISOSW_DVD9_NTRL_Win_10_1809_64Bit_MultiLang_FOD_1_X21-91307.ISO


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

Всего записей: 1237 | Зарегистр. 12-10-2006 | Отправлено: 16:34 05-11-2020 | Исправлено: BorlandIMHO, 16:38 05-11-2020
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO, не просек засаду, что часть файлов была без расширений, а в имени присутствовали точки, последняя из которых была после 64-го символа + некоторые из этих файлов были идентичны по первым 70-ти символам.

Всего записей: 2251 | Зарегистр. 24-10-2002 | Отправлено: 18:47 05-11-2020
BorlandIMHO

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

Цитата:
часть файлов была без расширений, а в имени присутствовали точки, последняя из которых была после 64-го символа + некоторые из этих файлов были идентичны по первым 70-ти символам.

А в чём, собственно, засада?
Файловой системе достаточно различия в 1 единственный символ (причём даже незаметного на глаз: например кириллическая "о" и латинская "o" являются совершенно разными символами, несмотря на неразличимость изображения в большинстве шрифтов)...
Т.н. "расширение", по-определению - часть имени файла начиная с последней точки в имени; вполне условная и вовсе необязательная (даже у мокрософта) часть имени файла. Более того, допустимы {не в DOS, конечно } и различны имена файлов "1.txt" и "1..txt", а также ".txt" и "..txt", а можно ещё и ведущих пробелов для пущей радости добавить: " .txt" и "  .txt" тоже допустимы и различны...

В переменную командного процессора можно загнать для дальнейшей обработки строку хоть в 1000 символов (на самом деле до 2047 символов, хотя где-то попадалась цифра 8191), чего более чем достаточно для обработки имён файлов даже предельной длины...

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

Всего записей: 1237 | Зарегистр. 12-10-2006 | Отправлено: 00:48 06-11-2020 | Исправлено: BorlandIMHO, 01:14 06-11-2020
notinthewoods

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Решил тут с помощью ripgrep найти в папке все текстовые файлы, где встречается слово отключить отдельным словом

Цитата:
rg --files-with-matches --word-regexp --ignore-case отключить

К сожалению, ripgrep нашел только 2 файла, хотя обычный поиск по содержимому через Проводник обнаружил 86. Оказалось, что эти 2 файла имеют кодировку Unicode. Абсолютное большинство текстовых файлов в данной папке имеют кодировку ANSI.
Слова на латинице ripgrep ищет без данного ограничения. А как же быть с кириллицей?

Всего записей: 123 | Зарегистр. 31-01-2015 | Отправлено: 00:58 06-11-2020
BorlandIMHO

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

Цитата:
Слова на латинице ripgrep ищет без данного ограничения. А как же быть с кириллицей?

Всё не просто, а очень просто: латиница в любой кодировке (OEM, ANSI, UTF8) остаётся латиницей (кроме умляутов и прочих хитровыдуманных символов). Т.е. латинская "A" в любой кодировке имеет код "65". С кириллицей всё намного запутаннее: русская "А" имеет код "1040" в UTF8, "192" в ANSI и "128" в OEM. Соответственно, это 3 разных символа с точки зрения компьютера вообще и grep в частности; чтобы найти все вхождения слова в 3-х разных кодировках - придётся вести поиск во всех трёх...

Цитата:
 ripgrep нашел только 2 файла, хотя обычный поиск по содержимому через Проводник обнаружил 86

На нерусской винде, кстати, проводник русские слова в ANSI тоже не найдёт, по идее...
Поиск во всех мыслимых кодировках одновременно умеет вести FAR manager, например.
 
P.S.: чисто для наглядности

Файлик Off.txt содержит слово "отключить" в кодировке UTF8...

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

Всего записей: 1237 | Зарегистр. 12-10-2006 | Отправлено: 01:36 06-11-2020 | Исправлено: BorlandIMHO, 01:57 06-11-2020
Открыть новую тему     Написать ответ в эту тему

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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru