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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

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

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

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
 
Чет сразу не сообразил, у меня изначально список выгядит так после команды
 
dir /b /a-d /s >B:\list.txt

Код:
B:\5\amd64_microsoft-onecore-a..ecore-onecore-other_31bf3856ad364e35_10.0.20348.1_none_39746e169083a4b7.manifest
B:\5\amd64_microsoft-onecore-b..h-audio-a2dp-source_31bf3856ad364e35_10.0.20348.1_none_bf00c9a15eed3b9c.manifest
B:\5\amd64_microsoft-onecore-b..oth-audio-a2dp-sink_31bf3856ad364e35_10.0.20348.1_none_42a36c0d527e14ea.manifest

 
Нельзя ли скрипт адаптировать под этот вариант,  
т.е. добавить к каждой строке  
 
<hash>*=    , где * - номер строки
 
Чтобы такой вид был и всё в одном скрипте.

Код:
<hash>1=B:\5\amd64_microsoft-onecore-a..ecore-onecore-other_31bf3856ad364e35_10.0.20348.1_none_39746e169083a4b7.manifest
<hash>2=B:\5\amd64_microsoft-onecore-b..h-audio-a2dp-source_31bf3856ad364e35_10.0.20348.1_none_bf00c9a15eed3b9c.manifest
<hash>3=B:\5\amd64_microsoft-onecore-b..oth-audio-a2dp-sink_31bf3856ad364e35_10.0.20348.1_none_42a36c0d527e14ea.manifest

 
P.S. Всё замечательно работает. Спасибо.
 

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



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

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

Всего записей: 13142 | Зарегистр. 11-03-2002 | Отправлено: 20:48 26-02-2025
LZAA

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

      Такая история.
 
     Windows OS.
     Я получаю в командной строке ответ от сервера ввиде набора символов и сохраняю их в файл. Пример:
 
     curl URL > x.txt
 
     или
 
     x.py > x.txt
 
     При этом к данным добавляются символы 'CRLF' или 'CR'. Подозреваю, что это OS для чего-то делает.
      Вопрос: есть ли возможность командным образом предотвратить добавление в файл всех этих 'кареток'?

Всего записей: 2475 | Зарегистр. 09-01-2010 | Отправлено: 21:33 26-02-2025
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
LZAA
Можно попробовать
Цитата:
curl URL -o x.txt

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



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

Код:
 
set Cmdline=echo abc
set OutFile=x.txt
setlocal enabledelayedexpansion || exit /b
for /f delims^= %%A in ("!Cmdline!") do (
  endlocal
  for /f delims^=^ eol^= %%B in ('%%A') do >"%OutFile%" <nul set /p=%%B
)
 


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

Всего записей: 4245 | Зарегистр. 18-04-2005 | Отправлено: 21:53 26-02-2025
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
      Попробовал.
      Да - для 'curl.exe' это работает.
      Можно ли для сценария 'Python' что-нибудь придумать? Или нужно сам сценарий редактировать?
 
                    GCRaistlin
 
     Могли бы Вы пояснить, как этот код использовать при выполнении сценария 'Python'?
     Если его использовать 'как есть', то создаётся файл с текстом 'abc' без 'добавок'. Но надо взять данные из 'stdout'.

Всего записей: 2475 | Зарегистр. 09-01-2010 | Отправлено: 21:56 26-02-2025 | Исправлено: LZAA, 10:54 27-02-2025
FiLinX



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

Код:
@echo off
set "nf_or=C:\Prolog. Proekt Otstupnik\gamedata\textures\trees\trees_a_.dds"
set "d_out=C:\Prolog. Proekt Otstupnik\gamedata\textures\trees"
for /f "delims=" %%a in ('dir/a-d/b "%d_out%\*.dds"') do copy/y "%nf_or%" "%d_out%\%%a"
exit

ложил его и подготовленный файл-пустышку trees_a_.dds, в директорию trees в которой куча текстурок листвы и травы.
ну и при выполнении батника - все исходные текстурки в директории заменялись на текстурку того файла, но - с сохранением исходных имён.
но батник написан так, что нужно было ручками для каждого мода сталкера прописывать новые пути..
 
так вот мне сейчас тоже понадобилась аналогичная подмена файлов..  
но вот подумалось, а может вы подскажете как изменить этот батничек - чтобы ненужно уже было б пути то прописывать?  
ну, чтоб достаточно было б указать в батнике только имя файла-образца с расширением, и им уже подменялись бы в той директории все файлы с таким же расширением (естесственно с сохранением оригинальных имён файлов)
вобщем избавиться бы от путей

Всего записей: 2750 | Зарегистр. 05-05-2010 | Отправлено: 12:51 09-03-2025 | Исправлено: FiLinX, 12:59 09-03-2025
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FiLinX
Ну, один-то путь полюбасу прописывать надо. Собственно к целевой папке...

Код:
for /f "delims=" %%a in ('dir /a-d /b "x:\путь к корню\целевой папки\*.dds"') do copy /y "подготовленный файл-пустышка" "%%~fa"

{Причём если "подготовленный файл-пустышка" реально пустышка (т.е. файл нулевого размера), то можно просто ... copy /y nul "%%~fa"}

Всего записей: 2962 | Зарегистр. 12-10-2006 | Отправлено: 13:43 09-03-2025 | Исправлено: BorlandIMHO, 13:44 09-03-2025
FiLinX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
я не пойму, а зачем путь то вообще надо?  я ж ведь и батник и файл-образец сразу в нужную директорию размещаю и исполняю оттуда..
а насчёт пустышности, не, тот dds весомый, просто текстурка там пустышная - https://0x0.st/8u5D.dds
а сейчас то мне хотелось вообще для любых типов файлов батник-подменитель такой заиметь)

Всего записей: 2750 | Зарегистр. 05-05-2010 | Отправлено: 14:48 09-03-2025
BorlandIMHO

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

Код:
for /f "delims=" %%a in ('dir /a-d /b "*.dds"') do copy /y "подготовленный файл-пустышка" "%%~a"

Только "пустышка" должна быть не .dds, иначе будет ошибка при попытке скопировать её саму в себя...

Цитата:
не, тот dds весомый, просто текстурка там пустышная

Сугубо параллельно. Уже не "настоящая пустышка".

Цитата:
для любых типов файлов батник-подменитель такой заиметь

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

Всего записей: 2962 | Зарегистр. 12-10-2006 | Отправлено: 15:25 09-03-2025 | Исправлено: BorlandIMHO, 15:29 09-03-2025
FiLinX



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

Всего записей: 2750 | Зарегистр. 05-05-2010 | Отправлено: 17:28 09-03-2025 | Исправлено: FiLinX, 17:40 09-03-2025
sakatgg

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ, в продолжение этого поста [?]

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

В процессе понадобилось добавлять в начало list2.txt шаблон из нескольких строк, типа такого (без номеров)
 

Код:
CatalogVersion=2
HashAlgorithms=SHA256
ResultDir=.\
CATATTR1=0x10010001:OSAttr:V2:10.0,2:6.3,2:6.2,2:6.1,2:6.0,2:5.2,2:5.1

 
Нельзя ли добавить в скрипт вставку шаблона в начало формируемого списка с номерами
или из внешнего файла? Спасибо.  

Всего записей: 1241 | Зарегистр. 18-11-2006 | Отправлено: 19:19 09-03-2025 | Исправлено: sakatgg, 19:27 09-03-2025
BorlandIMHO

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

Цитата:
добавить в скрипт вставку шаблона в начало формируемого списка с номерами


Просто добавьте одну строчку

Код:
copy "Template.file" list2.txt

сразу после команды удаления (del /f /q ...)
Template.file - соответствующий "внешний файл".

Всего записей: 2962 | Зарегистр. 12-10-2006 | Отправлено: 21:55 09-03-2025
sakatgg

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
Спасибо, работает.
 
Еще выяснилось, что директории, с вложенными файлами, в списке лишнее, нельзя ли сделать в скрипте вывод только файлов в корне папки?
 
И еще, чтобы пути были относительные, а не полные. Спасибо.  
 

Цитата:
Просто добавьте одну строчку

Да понятно, еще в 80-ые в Dos проходили, новая инфа выбивает из мозга всё старое...

Всего записей: 1241 | Зарегистр. 18-11-2006 | Отправлено: 03:32 10-03-2025 | Исправлено: sakatgg, 03:37 10-03-2025
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sakatgg
Кстати, команду копирования проще вставить вместо del, только к ней добавить ключ /y (copy /y ....).

Цитата:
Еще выяснилось, что директории, с вложенными файлами, в списке лишнее, нельзя ли сделать в скрипте вывод только файлов в корне папки?
 
И еще, чтобы пути были относительные, а не полные.
Если файлы только из корня - то про какие вообще пути может идти речь?
В команде dir убрать ключ /s просто...

Всего записей: 13142 | Зарегистр. 11-03-2002 | Отправлено: 05:57 10-03-2025
sakatgg

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Ваш скрипт, другие файлы и другие скрипты в корне папки расположены (она в любом месте может находиться),  
а файлы для списка тут же в отдельной папке Files\
 
Другие скрипты с этой папкой Files\ работают по относительному пути  
 
Типа такого и без папок в папке Files\

Код:
<hash>1=Files\amd64_microsoft-appmodel-..amodel-capabilities_31bf3856ad364e35_10.0.26100.1_none_b18904471adf7ede.manifest
<hash>2=Files\amd64_microsoft-client-li..ing-platform-client_31bf3856ad364e35_10.0.26100.1_none_065940c41c5cb083.manifest
<hash>3=Files\amd64_microsoft-client-li..orm-instrumentation_31bf3856ad364e35_10.0.26100.1_none_fa39855234b808a2.manifest

 
Так то Ваш скрипт работает отлично, но привязан к полному пути
 
P.S. Ок, понял, всё получилось Спасибо, выручили.

Всего записей: 1241 | Зарегистр. 18-11-2006 | Отправлено: 06:59 10-03-2025 | Исправлено: sakatgg, 07:30 10-03-2025
Pasha_ZZZ



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sakatgg
Еще раз, диктую большими буквами: чтобы не было подкаталогов - надо убрать /s. Еще понятнее мне не объяснить.
При выводе без подкаталогов - никаких путей нет и быть не может. Выводятся ИМЕНА из текущего.
Если какую-то хрень надо в выводе - добавьте сами в ECHO после знака =

Всего записей: 13142 | Зарегистр. 11-03-2002 | Отправлено: 07:22 10-03-2025
MaraGame24



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые скриптоделы
 
Возможно ли без стороннего софта (батником), после запуска программы, она сразу сворачивалась в системный трей ???
У меня Windows 11 22H2-24Н2 если что.

Всего записей: 1363 | Зарегистр. 25-11-2023 | Отправлено: 20:17 28-03-2025
greeple

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

Код:
start /min "" proga.exe

 
Добавлено:
если программа сворачивается в трей по кнопке свернуть

Всего записей: 6490 | Зарегистр. 11-02-2020 | Отправлено: 22:00 28-03-2025
MaraGame24



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greeple
Цитата:
start /min "" proga.exe
Эта команда сворачивает вообще не понятно куда )))...Если понадобиться закрыть прогу, то только через ДЗ...Хотелось что бы нормально можно было закрыть...Например по ПКМ на мыше...
Мне прям конкретно надо для одной проги (остальные не интересуют)...
Для этой "OperaProxy"--->>> http://forum.ru-board.com/topic.cgi?forum=5&topic=51214&start=0 [?]

Всего записей: 1363 | Зарегистр. 25-11-2023 | Отправлено: 22:34 28-03-2025 | Исправлено: MaraGame24, 23:10 28-03-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

Компьютерный форум 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