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

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

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

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

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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем здравствуйте
 
Пожалуйста, помогите
 
Возвращаясь к моей затее перейти
 
Доработал, как смог, самопал, файл. Получилось 1_mod.cmd
 

Код:
 
@Echo Off
 
If Exist "%SystemDrive%\Program Files (x86)\WinRAR\Rar.exe" (
Set "NameQQQ=%SystemDrive%\Program Files (x86)\WinRAR\Rar.exe"
)
 
FOR %%A IN ("%NameQQQ%" a 1.rar "%~dp0*.*doc*" "%~dp0*.*xls*" "%~dp0*.*tmp*" "%~dp0*.*ppt*" "%~dp0*.*acc*" "%~dp0*.*rtf*" "%~dp0*.*txt*" "%~dp0*.*cdr*" "%~dp0*.*cdw*" "%~dp0*.*bak*" "%~dp0*.*jpg*" "%~dp0F\" -ep -dh -ma4 -m5 -md4096k -s) DO SET "file1Size=%%A"
 
Echo VARIABLE=%file1Size%
 
If "%VARIABLE%"=="ОШИБКА: Неизвестный параметр ma4" (
"%NameQQQ%" a 1.rar "%~dp0*.*doc*" "%~dp0*.*xls*" "%~dp0*.*tmp*" "%~dp0*.*ppt*" "%~dp0*.*acc*" "%~dp0*.*rtf*" "%~dp0*.*txt*" "%~dp0*.*cdr*" "%~dp0*.*cdw*" "%~dp0*.*bak*" "%~dp0*.*jpg*" "%~dp0F\" -ep -dh -m5 -md4096k -s
)
 
Pause
 
Exit
 
 

 
При запуске файла не отдаётся нужное - в моем примере, должно быть на выхлопе
 

Код:
VARIABLE=ОШИБКА: Неизвестный параметр ma4

 
а выдается
 

Код:
VARIABLE=-s

 
Пожалуйста, помогите, ДОкрутить
 
Просьба, очень нужно, без использования
 

Код:
SETLOCAL ENABLEDELAYEDEXPANSION

 
Хочется - чем проще, тем лучше, чтобы разобраться, понять
 
Спасибо.

Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 18:20 09-11-2022 | Исправлено: SharkyEXE, 19:34 09-11-2022
BorlandIMHO

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

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

Т.е. конечная цель - получение текстового сообщения об ошибке rar, я правильно понял?...  
Почитайте, что ли, справку по команде for... В вашем варианте она, как и задано ключами/параметрами, выдаёт "-s" {последнее слово строки в скобках}...
И дополнительно http://forum.ru-board.com/topic.cgi?forum=5&topic=50615&start=1760#21 +- рядом (это касательно кавычек в цикле for и лайфхака по обходу ошибки).


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

Всего записей: 2401 | Зарегистр. 12-10-2006 | Отправлено: 20:31 09-11-2022 | Исправлено: BorlandIMHO, 20:44 09-11-2022
SharkyEXE

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
 
Здравствуйте
 
Суть в том, что:
1) установить WinRAR х86 4.20
2) на выходе получиться папка C:\Program Files (x86)\WinRAR
3) при запуске моего скрипта, 100%но должно вываливаться

Код:
VARIABLE=ОШИБКА: Неизвестный параметр ma4

Потому что ключ -ma4 - только с WinRAR х86 (версия больше или равно 5.00)
 
Я очень прошу Вас, мне сделать и забыть, других задумок вагон, как мне победить ошибку, будьте так любезны, помогите
 
Спасибо.

Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 20:36 09-11-2022 | Исправлено: SharkyEXE, 20:49 09-11-2022
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE
:рукалицо:
Чтобы получить архив {формата RAR4, независимо от версии WinRar 4 или 5}: http://forum.ru-board.com/topic.cgi?forum=5&topic=50615&start=1940#15
Там путь к rar поменять, раз у вас с (x86) {у меня обычный x64}.
И путь к результирующему архиву, как уже писАл.
for там не нужен, от слова "вообще".
Если что-то ещё непонятно - спрашивайте...
 
Если же хотите непременно по-своему {стоя на лыжах в гамаке } - как уже говорилось, читайте хелпы...

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

Всего записей: 2401 | Зарегистр. 12-10-2006 | Отправлено: 20:57 09-11-2022 | Исправлено: BorlandIMHO, 21:02 09-11-2022
SharkyEXE

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

Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 21:02 09-11-2022
BorlandIMHO

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE
И ещё раз: СПРАВКУ КОМАНДЫ for ИЗУЧИТЕ!. Там всё написано...
Сильно сомневаюсь, чтобы кому-то было интересно заниматься этим вместо вас....

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

Всего записей: 2401 | Зарегистр. 12-10-2006 | Отправлено: 21:06 09-11-2022
SharkyEXE

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BorlandIMHO
 
Здравствуйте
 
Вы извините, любезно, я написал, других задумок вагон
 
Есть желание - для Вас несложно помочь и забыть
 
Для меня - не спорю, учиться всегда полезно, но эта задумка моя не стоит 1-2-3 минуты, а не потратить 1-2-3 или более часов мне для решения этой пустяковой задачи, и то, не факт, что у меня самостоятельно получится
 
Да да, нет нет
 
Извините меня, пожалуйста.

Всего записей: 354 | Зарегистр. 25-01-2009 | Отправлено: 21:11 09-11-2022
Artem_Butenko



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

Цитата:
... do call set ...
И кавычки не нужны, кстати.

Большое Вам человеческое спасибо! Такой вариант верный?
 
Пожалуйста, подскажите, каким образом корректно в консоли удалить файл, размер которого превышает 500 Мб?

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 01:12 10-11-2022 | Исправлено: Artem_Butenko, 01:13 10-11-2022
GCRaistlin



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

Цитата:
каким образом корректно в консоли удалить файл, размер которого превышает 500 Мб?

Так же, как и файл, размер которого не превышает.

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

Всего записей: 3991 | Зарегистр. 18-04-2005 | Отправлено: 10:54 10-11-2022
Artem_Butenko



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

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 22:25 10-11-2022
GCRaistlin



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Artem_Butenko
500 Мб - это условие отбора? Я не так понял сначала.
Я бы взял сет FOR в кавычки.
 
С кавычками вы не напутали, просто они не обязательны - ни в первом случае, ни во втором.

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

Всего записей: 3991 | Зарегистр. 18-04-2005 | Отправлено: 22:45 10-11-2022
Artem_Butenko



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

Цитата:
500 Мб - это условие отбора? Я не так понял сначала.
Я бы взял сет FOR в кавычки.
 
С кавычками вы не напутали, просто они не обязательны - ни в первом случае, ни во втором.

 
Условие, если файл событий превысил 500 Мб, то он будет удалён.
С уважением к Вашему опыту, пожалуйста, покажите, как бы сделали это Вы.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 23:20 10-11-2022
GCRaistlin



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

Код:
 
set MaxSize=500
set /a MaxSize*=1024*1024
For /R "%~dp0" %%I In ("%~n0.log") Do (
  set LogFile=%%I
  if _ neq _!! setlocal enabledelayedexpansion || exit /b
  for /f "useback delims=" %%A in ('!LogFile:^"^=!') do (
    If %%~zA GTR %MaxSize% (
      endlocal
      Del /F "%%A"
    )
  )
)
 

Я ошибся: с DEL окавычивать FOR-переменную нужно.

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

Всего записей: 3991 | Зарегистр. 18-04-2005 | Отправлено: 00:23 11-11-2022
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, пожалуйста, подскажите, можно ли выводить "MSGBOX" с таймером для кнопки (т.е., по истечении времени, нажать "ОК") в пакетном сценарии, используя "cscript.exe" или "VBS".
 
Можно использовать конструкцию. Только, как добавить таймер? Или топорно "убивать процесс" "cscript.exe", через определённое время, регламентируемое командой "ping" или "sleep"?

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 00:12 12-11-2022 | Исправлено: Artem_Butenko, 00:24 12-11-2022
bomzz

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

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 09:14 12-11-2022 | Исправлено: bomzz, 11:51 12-11-2022
Artem_Butenko



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

Цитата:
это модифицированный месадж бокс с таймером, надо хукать функцию системную.
у меня где то валяется сейчас поищу

 
Спасибо, а как это решение применяется в пакетном сценарии? Можно примеры.

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 21:04 12-11-2022
bomzz

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

Всего записей: 3412 | Зарегистр. 29-03-2016 | Отправлено: 03:58 13-11-2022 | Исправлено: bomzz, 06:44 13-11-2022
vad221

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Возникла такая проблемка.
В папке есть только файлы вида ZSO*.xml. Но команда DIR ZSD*.xml тем не менее находит среди них несколько ZSD* файлов (выводит несколько ZSO*.* файлов). Проверял также командой Get-childitem в PowerShell  - выводит те же файлы. В чем может быть причина? С латиницей вроде не должно быть проблем с кодировкой?  

Всего записей: 4 | Зарегистр. 03-01-2006 | Отправлено: 14:36 13-11-2022
sjdb45



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята подскажите чайнику как запустить для установки с ключами *.exe файл не зная его полного имени ?

Всего записей: 136 | Зарегистр. 17-07-2011 | Отправлено: 20:01 13-11-2022
BorlandIMHO

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

Цитата:
как запустить для установки с ключами *.exe файл не зная его полного имени ?

В такой постановке - никак.    
Если известно местоположение файла и он там единственный *.exe:

Код:
for /F "usebackq delims=" %A in (`dir /B /A:-D "местоположение файла\*.exe"`) do "%~fA" {пресловутые ключи}

Если не единственный - требуется видоизменить команду в () так, чтобы её результатом был единственный нужный файл. По каким критериям {дата/имя/размер...}- вам виднее...

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

Всего записей: 2401 | Зарегистр. 12-10-2006 | Отправлено: 20:28 13-11-2022 | Исправлено: BorlandIMHO, 20:28 13-11-2022
Открыть новую тему     Написать ответ в эту тему

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

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