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

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

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

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

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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Если есть готовый reg для HKLM, то не нужен reg add. Импортируйте *.reg и всего делов

----------
Мы все умрём. (-:

Всего записей: 5425 | Зарегистр. 23-04-2009 | Отправлено: 10:44 20-12-2024
hooddy

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inoz2000
речь про импортирование из коммандой строки во время (точнее, после) установки, а не вручную из проводника кликнуть на .reg. поэтому reg add. или я что-то не понимаю? короче, мне оба абзаца в том посте привести к одному знаменателю.

Всего записей: 2251 | Зарегистр. 08-12-2006 | Отправлено: 10:49 20-12-2024 | Исправлено: hooddy, 10:53 20-12-2024
DeZz



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
hooddy
TaskbarAl я тоже у себя юзаю.  
Остальное - по аналогии.

Всего записей: 1289 | Зарегистр. 23-01-2006 | Отправлено: 11:33 20-12-2024
hooddy

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

Код:
:THIS LOADS THE DEFAULT HIVE
reg load HKLM\DEFAULT c:\users\default\ntuser.dat
:THIS ENABLES THE OLDER STYLE CONTEXTUAL MENUS
reg add "HKLM\default\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v FullContext /d "C:\Windows\system32\cmd.exe /c reg add \"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32\" /v \"\" /f" /f
:THIS UNLOADS THE DEFUALT HIVE
reg unload HKLM\DEFAULT
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarAl /t REG_DWORD /d 0 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarGlomLevel /t REG_DWORD /d 1 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel" /v {20D04FE0-3AEA-1069-A2D8-08002B30309D} /t REG_DWORD /d 0 /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu" /v {20D04FE0-3AEA-1069-A2D8-08002B30309D} /t REG_DWORD /d 0 /f
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Blocked" /v {e2bf9676-5f8f-435c-97eb-11607a5bedf7}
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v DontDisplayLastUsername /t REG_DWORD /d 1 /f
 

 
и мне все же кажется что надо остальные ключи добавлять также как и первый. а я в конце в ключах запутался.

Всего записей: 2251 | Зарегистр. 08-12-2006 | Отправлено: 11:45 20-12-2024 | Исправлено: hooddy, 13:53 20-12-2024
DmitriC



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

Цитата:
сейчас батник выглядит так:  

А почему вы пытаетесь добавлять в реестр данные после того, как выгружен куст default?

Цитата:
.....
:THIS UNLOADS THE DEFUALT HIVE
reg unload HKLM\DEFAULT
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarAl /t REG_DWORD /d 0 /f
.....


Всего записей: 790 | Зарегистр. 15-12-2005 | Отправлено: 22:34 22-12-2024
hooddy

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

Цитата:
сейчас батник выглядит так:  

А почему вы пытаетесь добавлять в реестр данные после того, как выгружен куст default?

Цитата:
.....
:THIS UNLOADS THE DEFUALT HIVE
reg unload HKLM\DEFAULT
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /v TaskbarAl /t REG_DWORD /d 0 /f
.....

ну да есть такое. пропустил. проверю.
 
Добавлено:
DmitriC
поправил он это нет не работает. это нужно добавлять именно как первую строку  
 
 reg add "HKLM\default\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v FullContext /d "C:\Windows\system32\cmd.exe /c reg add \"HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32\" /v \"\" /f" /f  
 
и у меня не получается вкурить синтаксис. так бы и вопрос не было.

Всего записей: 2251 | Зарегистр. 08-12-2006 | Отправлено: 09:15 23-12-2024
DarkStar2000



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

Цитата:
Для веток HKLM можно было просто install.wim курочить, но ветку HKCU нашел только таким образом как поправить.

В WIM файле ветка HKCU это файл \Windows\System32\config\DEFAULT

Всего записей: 242 | Зарегистр. 05-03-2003 | Отправлено: 16:35 23-12-2024
hooddy

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DarkStar2000
да, вы правы, я проглядел и это. после праздников может займусь, но батник было бы универсальнее, все же его в любой образ (10-11) кинул и все не надо курочить wim.

Всего записей: 2251 | Зарегистр. 08-12-2006 | Отправлено: 13:45 25-12-2024
Egorbarbosa

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ув. гуру помогите написать батник для удаления  edge из автозагрузки  
reg delete "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "MicrosoftEdgeAutoLaunch_757D8B3E272815B36AABF79BD5FA68F2" /f тут мегяються вот эти значения _757D8B3E272815B36AABF79BD5FA68F2  ,а здесь соответственно schtasks /change /tn "\MicrosoftEdgeUpdateTaskMachineCore{1C365074-25A4-4468-9AFF-6A194C51D731}" /disable
schtasks /change /tn "\MicrosoftEdgeUpdateTaskMachineUA{BDB5F83D-20A3-4151-A494-07ABFAB960DF}" /disable то что междду {}.Как записать эти меняющиющиея значения .

Всего записей: 5 | Зарегистр. 26-08-2016 | Отправлено: 10:50 28-12-2024 | Исправлено: Egorbarbosa, 10:52 28-12-2024
DeZz



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

Код:
reg add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v StartupBoostEnabled /t REG_DWORD /d 0 /f

 
ибо политика

Всего записей: 1289 | Зарегистр. 23-01-2006 | Отправлено: 11:14 28-12-2024
Egorbarbosa

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

Цитата:
 reg add "HKLM\SOFTWARE\Policies\Microsoft\Edge" /v StartupBoostEnabled /t REG_DWORD /d 0 /f  

автозапуск Edge отключился а задания  
MicrosoftEdgeUpdateTaskMachineUA{....}  
MicrosoftEdgeUpdateTaskMachineCore{....} нет .как еще и их отключать ?bat,cmd,PowerShell любой вариант лижбы автоматически отключались.

Всего записей: 5 | Зарегистр. 26-08-2016 | Отправлено: 12:16 28-12-2024 | Исправлено: Egorbarbosa, 20:38 28-12-2024
LZAA

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

       Есть пакетный файл вида:
 
    start xxxx
    start yyyy
 
    Задача заключается в том, чтобы или в самом пакетном файле назначить время запуска (часы:минуты:секунды), или создать другой пакетный файл, который запустит первый в указанное время.
   Есть такое: https://www.cyberforum.ru/cmd-bat/thread756260.html
   Я пытался использовать этот код для запуска, но не сработало. Я писал:
 
set /p hours=xx:
set /p mins=yy:
set /p prog="Path to bat":
 
    Ещё можно задание сделать: https://www.windowscentral.com/how-create-task-using-task-scheduler-command-prompt
    Но хочется, всё же, пакетным файлом сделать. Как это можно сделать?

Всего записей: 2484 | Зарегистр. 09-01-2010 | Отправлено: 04:29 29-12-2024
Simple Code



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
 
Не знаю насколько надёжная конструкция. На свой страх и риск )

Код:
 
@echo off
call :TimerRun 00-00-00
echo Your main code!
 
exit
:TimerRun [%1 Hours-Minutes-Seconds]
setlocal EnableDelayedExpansion
:Loop
for /f "Tokens=1,2,3,4 Delims=:, " %%a in ("%time%") do (
    if %%~a LSS 10 (set th=0%%~a) else (set th=%%~a)
    if NOT "%~1"=="!th!-%%~b-%%~c" (
        timeout /T 1 >nul 2>&1
        goto :Loop
    )
) & endlocal & exit /b
 

Всего записей: 285 | Зарегистр. 19-11-2022 | Отправлено: 11:34 29-12-2024 | Исправлено: Simple Code, 22:23 29-12-2024
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Код:
 
   call :TimerRun 12-30-05
   echo
   Команда_1
   ...
 
   Так работает. Два вопроса, если можно.
 
   1. Можно ли сделать, чтобы одновременно запускалось несколько команд?
   2. Я так понял, что Ваш код также задаёт ':TimerRun [%1 Hours; %2 Minutes; %3 Seconds]'. Можно ли сделать так, чтобы пакетный файл просто запускал по времени несколько команд и сразу закрывался после этого?

Всего записей: 2484 | Зарегистр. 09-01-2010 | Отправлено: 14:00 29-12-2024 | Исправлено: LZAA, 14:22 29-12-2024
Simple Code



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
 
1a. Если запускать команды в отдельном файле, например: start "" "C:\test.cmd" "& exit" <—> этот аргумент нужно передавать, чтоб запускаемый пакетник корректно закрылся или в самом пакетнике написать exit, ни каких GoTo :EOF.
1b. Ещё вариант без отдельного файла: start "" cmd.exe "/C Your Command"
2. См. пункт 1, после запуска через start, консоль закроется.
Можно ещё скрыть консоль, что бы работало в фоне, но уже придется добавить к коду использование PowerShell или MSHTA.
Пример:

Код:
 
call :TimerRun 12-30-05
start "" cmd.exe "/C Your Command 1"
start "" cmd.exe "/C Your Command 2"
start "" cmd.exe "/C Your Command 3"
 
exit
 

Всего записей: 285 | Зарегистр. 19-11-2022 | Отправлено: 14:59 29-12-2024 | Исправлено: Simple Code, 15:46 29-12-2024
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Немного разобрался. Код:
 
@echo off
 
call :TimerRun 12-30-05
start Команда_1
start Команда_2
...
 
   Но я хочу вернуться, если Вы не возражаете, к своему вопросу №2.
   Нужно ли в коде ':TimerRun [%1 Hours; %2 Minutes; %3 Seconds]'? Зачем нужен интервал '01:02:03'? Можно ли без этого обойтись? То есть сделать код короче?

Всего записей: 2484 | Зарегистр. 09-01-2010 | Отправлено: 18:18 29-12-2024 | Исправлено: LZAA, 18:18 29-12-2024
Simple Code



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

Цитата:
То есть сделать код короче?


Код:
 
@echo off
call :TimerRun 00-00-00
echo Your main code!
 
exit
:TimerRun [%1 Hours-Minutes-Seconds]
setlocal EnableDelayedExpansion
:Loop
for /f "Tokens=1,2,3,4 Delims=:, " %%a in ("%time%") do (
    if %%~a LSS 10 (set th=0%%~a) else (set th=%%~a)
    if NOT "%~1"=="!th!-%%~b-%%~c" (
        timeout /T 1 >nul 2>&1
        goto :Loop
    )
) & endlocal & exit /b
 

Всего записей: 285 | Зарегистр. 19-11-2022 | Отправлено: 19:19 29-12-2024 | Исправлено: Simple Code, 22:24 29-12-2024
LZAA

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Большое спасибо за поимощь! Это работает.
 
     Запуск двух команд по времени:
 

Код:
@echo off
call :TimerRun xx-yy-zz
start  Команда_1
start  Команда_2
 
exit
:TimerRun [%1 Hours-Minutes-Seconds]
for /f "Tokens=1,2,3,4 Delims=:, " %%a in ("%time%") do (
    if %%~a LSS 10 (set th=0%%~a) else (set th=%%~a)
    if NOT "%~1"=="%th%-%%~b-%%~c" (
        timeout /T 1 >nul 2>&1
        goto :TimerRun
    )
) & exit /b

 
    Окно 'cmd' прячем ярлыком.
    Первоначальный Ваш код тоже пригодится.
     

Всего записей: 2484 | Зарегистр. 09-01-2010 | Отправлено: 21:12 29-12-2024 | Исправлено: LZAA, 21:14 29-12-2024
Simple Code



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

Цитата:
Первоначальный Ваш код тоже пригодится.

Не рекомендую, я там накосячил )

Всего записей: 285 | Зарегистр. 19-11-2022 | Отправлено: 21:24 29-12-2024
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LZAA
Это не работает. Нельзя в цикле раскрывать th через %. Ну, то есть можно - если хотим получить значение th на момент входа в цикл. А вы-то хотите - только что присвоенное.

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

Всего записей: 4262 | Зарегистр. 18-04-2005 | Отправлено: 21:25 29-12-2024
Открыть новую тему     Написать ответ в эту тему

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

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