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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd

Модерирует : gyra, Maz

Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201

   

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.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

Всего записей: 39110 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: metatrop, 07:55 29-11-2022
GCRaistlin



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

Код:
 
for /f "skip=1 tokens=1,2" %%A in ('^
  2^>nul wmic.exe desktopmonitor get screenheight^, screenwidth^
') do (
  if not "" == "%%B" if not defined ScreenWidth (
    set ScreenHeight=%%A
    set ScreenWidth=%%B
  )
)
 

https://superuser.com/questions/270718/get-display-resolution-from-windows-command-line

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 22:16 15-10-2021
Pasha_ZZZ



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

Цитата:
wmic path Win32_VideoController get CurrentHorizontalResolution,CurrentVerticalResolution

Всего записей: 12799 | Зарегистр. 11-03-2002 | Отправлено: 22:16 15-10-2021
Silver Raven

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
Вот этот код работает на 64-х битных Windows. Только тормозит, при исполнении:

Код:
 
cls
@echo off
Title Dislpay Resolution by Hackoo 2018
Set "WMIC_Command=wmic path Win32_VideoController get VideoModeDescription^,CurrentHorizontalResolution^,CurrentVerticalResolution /format:Value"
Set "H=CurrentHorizontalResolution"
Set "V=CurrentVerticalResolution"
Call :GetResolution %H% HorizontalResolution
Call :GetResolution %V% VerticalResolution
echo(
echo     Screen Resolution is : %HorizontalResolution% x %VerticalResolution%
pause>nul & Exit
::****************************************************
:GetResolution  
FOR /F "tokens=2 delims==" %%I IN (
  '%WMIC_Command% ^| find /I "%~1" 2^>^nul'
) DO FOR /F "delims=" %%A IN ("%%I") DO SET "%2=%%A"
Exit /b
::****************************************************
 

 
У меня есть собранное из разных кусков нечто:

Код:
 
set "TempConfig=Silver Raven mods pack data\temp_config.tmp"
set "MainConfig=Silver Raven mods pack data\main_config.cfg"
 
if exist "%TempConfig%" goto TempConfig
for /f "usebackq delims=" %%A in ("%MainConfig%") do (
  for /f "delims== tokens=1*" %%B in ("%%A") do (
 
:: Запись в конфиг-файл main_config.cfg
    >> "%TempConfig%" (
      if /i %%B==UpdateInstalled (
        echo %%B=false
      ) else (
        echo %%A
      )
    ) || (
      del /q "%TempConfig%"
      exit /b 1
    )
  )
)
move /y "%TempConfig%" "%MainConfig%"
 

редактируещее определенные секции в конфигах. По идее подойдет и под эту задачу?
 
Берем переменные %HorizontalResolution% и %VerticalResolution% и подставляем в ini файл:
 
iSize W=1920
iSize H=1080
 
И ни в коем случае нельзя не сломать структуру (пробелы там, разделения секций). Иначе перестанет читаться.

Всего записей: 149 | Зарегистр. 12-10-2012 | Отправлено: 22:59 15-10-2021 | Исправлено: Silver Raven, 23:00 15-10-2021
GCRaistlin



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

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 23:19 15-10-2021
BorlandIMHO

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

Цитата:
wmic.exe desktopmonitor get screenheight^, screenwidth^

У меня на 10.0.19043.1288 x64 не работает (wmic выдаёт пустые значения)...

 
Silver Raven

Цитата:
Вот этот код работает на 64-х битных Windows. Только тормозит, при исполнении:

Я бы сказал  - излишне усложнено...
Вполне достаточно такого:

Код:
@echo OFF
for /F "delims=" %%A in ('wmic path Win32_VideoController get CurrentHorizontalResolution^,CurrentVerticalResolution /value ^|find "="') do set /A %%A
echo     Screen Resolution is : %CurrentHorizontalResolution% x %CurrentVerticalResolution%  
pause



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

Всего записей: 2612 | Зарегистр. 12-10-2006 | Отправлено: 23:52 15-10-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
Похоже, нормально работающих вариантов вообще нет: про вариант с desktopmonitor пишут, что он всегда выдает разрешение для первого (не основного!) монитора. Вариант с Win32_VideoController только что проверил на Win81x64 - та же ерунда. А на Win2k3 вообще ни один не работает.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 00:48 16-10-2021
iNNOKENTIY21



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

Цитата:
Народ, а cmd-шником можно узнать текущее разрешение экрана (если их несколько, то только того, который установлен как основной)

С помощью powershell и winforms, в консоли cmd, пример выводит ширину (.Width):

Код:
powershell -command . {Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Screen]::PrimaryScreen.Bounds.Size.Width}


Всего записей: 3625 | Зарегистр. 16-08-2012 | Отправлено: 09:24 16-10-2021
metatrop

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

Цитата:
 
Народ, а cmd-шником можно узнать текущее разрешение экрана (если их несколько, то только того, который установлен как основной).
 

 
Не поможет ли разбор строчки
 
cmdow.exe "Program Manager" /B /P /F

Всего записей: 327 | Зарегистр. 17-09-2010 | Отправлено: 18:52 16-10-2021
BorlandIMHO

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

Цитата:
Не поможет ли разбор строчки


Цитата:
"cmdow.exe" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.


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

Всего записей: 2612 | Зарегистр. 12-10-2006 | Отправлено: 13:14 17-10-2021
kot1313



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Встретился мне один батник проверки локального диска.
(локальный диск у меня NTFS, а операционка Win7SP1ru)
 
Дак вот - очень Странно этот батник себя ведёт  
Если его запускать из под проводника, то пишет:
"CHKDSK недопустим для дисков NTFS" и, естественно, ничего не делает ...
Если ж его запустить из командной строки, то поверка работает штатно
 
Вот сам батник:

Код:
Title Check Disk D:  [0:1]  Fixed    NTFS  108.352  
 @Echo off  
 @Echo.  
 @Echo.  
 @Echo ======================================================  
 @Echo Test D:  [0:1]  Fixed    NTFS  108.352  
 @Echo ======================================================  
 @Echo.  
 @Echo.  
 Color f0  
 chkdsk.exe D: /F /X
set /p Ok=^>^>

 
Вопрос:
Что мешает батнику отработать штатно (проверить диск NTFS) при запуске из под проводника ?

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 19:06 17-10-2021 | Исправлено: kot1313, 19:07 17-10-2021
BorlandIMHO

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

Цитата:
пишет:
"CHKDSK недопустим для дисков NTFS" и, естественно, ничего не делает ...

Воспроизвести проблему не удалось...
Единственно на что ругается - так это на то, что для запуска нужны права администратора.
"От имени Администратора" - отрабатывает штатно.


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

Всего записей: 2612 | Зарегистр. 12-10-2006 | Отправлено: 19:44 17-10-2021
GCRaistlin



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

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 20:08 17-10-2021
kot1313



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

Цитата:
Рядом с батником что-нибудь лежит

Нет. Батник один. Запускал проводником из разных мест. Эффект тот же.  
"CHKDSK недопустим для дисков NTFS"
 
BorlandIMHO

Цитата:
"От имени Администратора"

Я даж его из проводника и от TI, и от администратора.  
Усё равно - "CHKDSK недопустим для дисков NTFS"
 
Кстати, у Вас скриншот из фара. Фар доставать долго. Для этого нужно включать uVs (от там у меня)
Но думаю из фара работать и у меня будет штатно, поскоку из моего TC 8.51 этот батник запускается и отрабатывает штатно.  
Усё проверяет. Да, TC 8.51 у меня запускается от админа по умолчанию ...  
И из тотала 10.00 x86, который запускается с обычными правами, так же батник отрабатывает штатно.  
Как и при запуске непосредственно из коммандной строки
 
Похоже, это у меня какой-то редкий косяк с проводником в системе.  
А Упоминаний про "CHKDSK недопустим для дисков NTFS" я в поисковиках вообще не нашёл.
Хотя искал минут 15. Пусто. Ни у кого такого не было...

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 22:35 17-10-2021 | Исправлено: kot1313, 22:46 17-10-2021
BorlandIMHO

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

Цитата:
у Вас скриншот из фара.

Запускал из "Проводника". FAR там чисто для редактирования скрипта...
Повторил опыт ещё раз, уже на 64-бит.
Результат абсолютно идентичен предыдущему...

Можно с уверенностью говорить, что причина ошибки непосредственно в настройках вашей системы.


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

Всего записей: 2612 | Зарегистр. 12-10-2006 | Отправлено: 00:31 18-10-2021 | Исправлено: BorlandIMHO, 00:34 18-10-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kot1313
Батник выложите. Файлом на обменник.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 00:35 18-10-2021 | Исправлено: GCRaistlin, 01:14 18-10-2021
kot1313



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

Цитата:
Батник выложите. Файлом на обменник.

Вот
 
Добавлено:
BorlandIMHO

Цитата:
Можно с уверенностью говорить, что причина ошибки непосредственно в настройках вашей системы

И я так думаю. Пора переходить на 10ку  
 
GCRaistlin
BorlandIMHO
Спасибо Вам за помощь  

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 02:20 18-10-2021 | Исправлено: kot1313, 23:51 21-10-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kot1313
Содержимое батника не совпадает с тем, что вы писали выше.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 02:28 18-10-2021
kot1313



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GCRaistlin
А в чём не совпадает ?
Я тока что проверил - батник и текст идиентичные

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 17:58 18-10-2021 | Исправлено: kot1313, 18:05 18-10-2021
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kot1313
Диск не тот.
 
Добавлено:
Вернее, теперь уже тот. Я смотрел исходный текст сообщения в почте.
У меня выдает: "Cannot open volume for direct access". Потому что в системе нет диска D.

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

Всего записей: 4128 | Зарегистр. 18-04-2005 | Отправлено: 18:15 18-10-2021
kot1313



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

Код:
@Echo off  
chkdsk.exe D: /F /X
Pause

Пишет  

Цитата:
Тип файловой системы: NTFS.
CHKDSK недопустим для дисков NTFS.


И это для любого диска NTFS, необязательно диска D
Так что это у меня косяк срабатывания такого батника из под проводника.
Интересно было бы знать, что вызывает такое странное поведение стандартной проверки диска.
И чем отследить эту причину. Но чем отследить - я не знаю, из инструментов ничего в голову не приходит.

Всего записей: 2522 | Зарегистр. 11-12-2002 | Отправлено: 19:02 18-10-2021 | Исправлено: kot1313, 19:03 18-10-2021
   

Страницы: 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 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии - bat, cmd
Maz (20-06-2024 22:42): Командная строка, батники, сценарии - bat, cmd (7 часть)


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru