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

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

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

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

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

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

Цитата:
Есть ли другой способ получить размер папок?

Из штатных - powershell.  
https://winitpro.ru/index.php/2018/07/24/poluchit-razmer-papok-powershell/
https://devblogs.microsoft.com/scripting/getting-directory-sizes-in-powershell/

Всего записей: 2845 | Зарегистр. 12-10-2006 | Отправлено: 09:26 14-01-2025 | Исправлено: BorlandIMHO, 09:36 14-01-2025
virjokk

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arcadaw
Цитата:
Есть ли другой способ получить размер папок?
Полноценно на PowerShell, а если без подсчета общей суммы и только в байтах, то так:
Код:
for /f "tokens=3*" %%a in ('2^>nul dir /s "%APPDATA%\Mozilla" ^| find "File(s)"') do set "f1=%%a"
if defined f1 echo Размер в Роаме = %f1% bytes
for /f "tokens=3*" %%a in ('2^>nul dir /s "%LOCALAPPDATA%\Mozilla" ^| find "File(s)"') do set "f2=%%a"
if defined f2 echo Размер в Локале = %f2% bytes

Всего записей: 364 | Зарегистр. 19-05-2006 | Отправлено: 09:35 14-01-2025 | Исправлено: virjokk, 09:39 14-01-2025
Arcadaw

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
virjokk
Спасибо. Попробую оба способа.

Всего записей: 1573 | Зарегистр. 25-03-2004 | Отправлено: 14:36 14-01-2025
Arcadaw

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

Цитата:
а если без подсчета общей суммы и только в байтах, то так

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

Всего записей: 1573 | Зарегистр. 25-03-2004 | Отправлено: 17:39 14-01-2025 | Исправлено: Arcadaw, 18:06 14-01-2025
VitaminP



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

Цитата:
Нет, не работает

там нужно заменить "File(s)" на "файлов" и кодировка скрипта DOS-866

Всего записей: 312 | Зарегистр. 28-08-2013 | Отправлено: 19:01 14-01-2025
Arcadaw

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

Цитата:
там нужно заменить  

Спасибо. Просто когда объяснят.

Всего записей: 1573 | Зарегистр. 25-03-2004 | Отправлено: 19:15 14-01-2025
alexnov66



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

Цитата:
Для переменной "MyFolder2" работает, а для переменной MyFolder1 не работает.  

в алфавите сколько букв, почему делаете с одной буквой все функции %%a
 
деля сумму количества файлов на какую то цифру объём папки не узнаешь
(%SizeFolder1% + %SizeFolder2%) / 1048576
штук и объём в мегабайтах файлов разные вещи
 

Код:
cls
SetLocal enabledelayedexpansion
Set MyFolder1=%APPDATA%\Mozilla
Set MyFolder2=%LOCALAPPDATA%\Mozilla
 
For /F "tokens=1-3" %%a IN ('Dir "%MyFolder1%" /-C/S/A:-D') Do Set SizeFolder1=!n2!& Set n2=%%a
For /F "tokens=1-3" %%b IN ('Dir "%MyFolder2%" /-C/S/A:-D') Do Set SizeFolder2=!n2!& Set n2=%%b
 
set /a Summa1 = %SizeFolder1% + %SizeFolder2%
 
echo Сумма          = %Summa1% файлов
echo Размер в Роаме  = %SizeFolder1% файлов
echo Размер в Локале = %SizeFolder2% файлов
 
endlocal
pause

 
вот так с размером директорий в мегабайтах

Код:
cls
SetLocal enabledelayedexpansion
Set MyFolder1=%APPDATA%\Mozilla
Set MyFolder2=%LOCALAPPDATA%\Mozilla
 
For /F "tokens=1-3" %%a IN ('Dir "%MyFolder1%" /-C/S/A:-D') Do Set SizeFolder1=!n2!& Set n2=%%a
For /F "tokens=1-3" %%b IN ('Dir "%MyFolder2%" /-C/S/A:-D') Do Set SizeFolder2=!n2!& Set n2=%%b
 
for /f "skip=4 tokens=1-3" %%a in ('dir /-c /s "%MyFolder1%" 2^>nul') do (
    If !flag!==1 set dirsize1=%%c
    If "%%b"=="файлов:" (set flag=1) else (set flag=0)
      )
 
for /f "skip=4 tokens=1-3" %%a in ('dir /-c /s "%MyFolder2%" 2^>nul') do (
    If !flag!==1 set dirsize2=%%c
    If "%%b"=="файлов:" (set flag=1) else (set flag=0)
      )
 
set /a Summa1 = %SizeFolder1% + %SizeFolder2%
 
set /a Summadir1=%dirsize1%/1024/1024
set /a Summadir2=%dirsize2%/1024/1024
set /a Summadir=%Summadir1%+%Summadir2%
 
echo Сумма файлов       = %Summa1%
echo Количество файлов в Роаме  = %SizeFolder1%
echo Количество файлов в Локале = %SizeFolder2%
echo Сумма мегабайт  = %Summadir% Mb
echo Размер в Роаме  = %Summadir1% Mb
echo Размер в Локале = %Summadir2% Mb
endlocal
pause

Всего записей: 1460 | Зарегистр. 29-08-2005 | Отправлено: 21:07 14-01-2025 | Исправлено: alexnov66, 23:37 14-01-2025
Arcadaw

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

Цитата:
 в алфавите сколько букв, почему делаете с одной буквой все функции %%a  

Отлично. Спасибо большое. Попробую так.

Всего записей: 1573 | Зарегистр. 25-03-2004 | Отправлено: 07:23 15-01-2025
Dr_Mihelson



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

Всего записей: 634 | Зарегистр. 27-11-2007 | Отправлено: 14:10 15-01-2025
greeple

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dr_Mihelson
А ты не хочешь просить это в теме SMPlayer? может там уже кто-то это делал
Тем более тебе надо протокол свой добавлять (обычно в прогах есть это в настройках и одной кнопкой они сами добавляют протокол в реестр) И ты уже придумал потом как ты будешь в браузере добавлять кнопку, либо на страницу к ссылкам, или в контекстное меню браузера по ссылкам? У тебя уже должно быть что-то для этого, чтобы добавлять в реестр протокол какой-то
Вот у меня для potplayer такой был

Код:
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\potplayer]
@="URL:POTPLAYER Protocol"
"URL Protocol"=""
 
[HKEY_CLASSES_ROOT\potplayer\shell]
 
[HKEY_CLASSES_ROOT\potplayer\shell\open]
 
[HKEY_CLASSES_ROOT\potplayer\shell\open\command]
@="C:\\Users\\greeple\\Portable\\PotPlayer\\PotPlayerMini64.exe \"%1\""

у тебя я так понимаю два протокола тут, один smplayer второй smplayer2 для добавления в плейлист

Код:
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\smplayer]
@="URL:SMPLAYER Protocol"
"URL Protocol"=""
 
[HKEY_CLASSES_ROOT\smplayer\shell]
 
[HKEY_CLASSES_ROOT\smplayer\shell\open]
 
[HKEY_CLASSES_ROOT\smplayer\shell\open\command]
@="C:\\Users\\path\\smplayer.exe \"%1\""
 
[HKEY_CLASSES_ROOT\smplayer2]
@="URL:SMPLAYER2 Protocol"
"URL Protocol"=""
 
[HKEY_CLASSES_ROOT\smplayer2\shell]
 
[HKEY_CLASSES_ROOT\smplayer2\shell\open]
 
[HKEY_CLASSES_ROOT\smplayer2\shell\open\command]
@="C:\\Users\\path\\smplayer.exe -add-to-playlist \"%1\""

Пути свои добавь, зачем тут @="URL:SMPLAYER2 Protocol" писать не знаю, надо это или нет, я по потплееру просто это написал
 
Добавлено:
аа это из расширения взято чтоль https://chromewebstore.google.com/detail/copy-video-url/fhfmfaokjdlpcbbofolnncfegfhgoafk ну если оно с 19 года до сих пор работает, то должно сработать

Всего записей: 6032 | Зарегистр. 11-02-2020 | Отправлено: 15:36 15-01-2025 | Исправлено: greeple, 15:38 15-01-2025
pressF



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Dr_Mihelson
Для браузера есть специальные расширения под это дело.

Всего записей: 1421 | Зарегистр. 29-03-2023 | Отправлено: 14:33 17-01-2025
Skywalker_4

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите как добавить к имени файла, не после расширения определённый текст, например _qqq ?

Всего записей: 63 | Зарегистр. 10-12-2021 | Отправлено: 20:27 17-01-2025
BorlandIMHO

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

Цитата:
как добавить к имени файла, не после расширения определённый текст, например _qqq ?

Например - так:
Код:
for /F "delims=" %%A in ("your file name.ext") do ren "%%~fA" "%%~dpnA_qqq%%~xA"


Код:
for /F "delims=" %%A in ("x:\path to\your file name.ext") do ren "%%~fA" "%%~nA_qqq%%~xA"

Всего записей: 2845 | Зарегистр. 12-10-2006 | Отправлено: 20:36 17-01-2025 | Исправлено: BorlandIMHO, 21:27 17-01-2025
GCRaistlin



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

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

Всего записей: 4198 | Зарегистр. 18-04-2005 | Отправлено: 20:43 17-01-2025
alexnov66



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот такая конструкция при вводе домена заменяет в переменной зону ру на сом
подскажите альтернативу для линукса CentOS, может даже универсальную при вводе любого первого уровня домена поменять на нужную зону и выдать вторую переменную.
Для windows
set domainold=domain.ru
set domainnew="%domainold:ru=com%"
echo %domainnew%

Всего записей: 1460 | Зарегистр. 29-08-2005 | Отправлено: 20:55 17-01-2025 | Исправлено: alexnov66, 21:07 17-01-2025
BorlandIMHO

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

Цитата:
REN не допускает

Поправил.
 
Добавлено:
alexnov66
Ваш вопрос сюда: UNIX Shell: sh, bash, zsh; Coreutils и ко.; sed, awk, perl;

Всего записей: 2845 | Зарегистр. 12-10-2006 | Отправлено: 21:24 17-01-2025
alexnov66



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

Всего записей: 1460 | Зарегистр. 29-08-2005 | Отправлено: 23:25 17-01-2025
WiperX



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

Всего записей: 1037 | Зарегистр. 17-03-2009 | Отправлено: 14:17 20-01-2025
Inoz2000



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вроде есть в шапке
http://forum.ru-board.com/topic.cgi?forum=62&topic=30521#1

Всего записей: 5373 | Зарегистр. 23-04-2009 | Отправлено: 15:04 20-01-2025
FiLinX



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
WiperX
из соседней темы с наличием devcon.exe

Всего записей: 2569 | Зарегистр. 05-05-2010 | Отправлено: 21:16 20-01-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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru