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

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

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

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

Всего записей: 38098 | Зарегистр. 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

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

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

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

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

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


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

Всего записей: 1662 | Зарегистр. 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)
 
Я очень прошу Вас, мне сделать и забыть, других задумок вагон, как мне победить ошибку, будьте так любезны, помогите
 
Спасибо.

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

Advanced 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

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

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

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

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

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

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

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

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



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

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

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

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



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

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

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

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

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



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

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



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

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

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



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

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

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

Всего записей: 673 | Зарегистр. 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

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



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

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

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

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



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

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

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

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

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

Всего записей: 3382 | Зарегистр. 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 файл не зная его полного имени ?

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

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

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

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

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

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

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

Всего записей: 1662 | Зарегистр. 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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru

Рейтинг.ru