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

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

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

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.51 до Windows 10) и command.com (DOS 5.0 и выше). Старые командные процессоры можно запускать на более новых ОС, хотя не всё может работать корректно. Подробная документация по командам cmd.exe и стандартным утилитам ОС для NT 3.51, NT 4.0, NT 5.0 (Windows 2000) и NT 5.2 (Windows Server 2003). Сборник представляет исторический интерес, а также незаменим для тех, у кого появилось желание сделать свои скрипты работоспобными не только на текущей версии ОС. Ссылки wdho.ru tinyupload.com dbree.org
 
· Сборник одним архивом: Сотни Win32 утилит командной строки, нетривиальные .cmd файлы, .bat miniperl скрипты (не требующие полноценной установки Perl), FAR Manager с плагинами и настройками, разное для DOS/DOSBox (откуда под Win32 интерес представляют три продвинутых "мультисистемных" .bat файла да ещё, может быть, оболочка Necromancer DOS Navigator с поддержкой LFN и доступом к буферу обмена Windows). Краткие описания всего - в файликах files.bbs

Всего записей: 37256 | Зарегистр. 26-02-2002 | Отправлено: 13:35 19-09-2020 | Исправлено: Maz, 07:16 24-04-2021
notinthewoods

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

Цитата:
Можете поделиться тайными знаниями?

Да собственно ключевая строка вот:

Код:
curl --insecure -s -I -X GET "https://cbjpeg.stream.highwebmedia.com/stream?room=%name%"| findstr /c:"No Content" && goto :round

Всего записей: 111 | Зарегистр. 31-01-2015 | Отправлено: 16:17 05-02-2021
fscpsd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fenrizz
И вам спасибо!
Вроде бы, при помощи молотка, зубила и такой-то матери rwinsta, "reset session" и "Stop-TSSession -Force" удалось позакрывать все имеющиеся сессии, которые не закрывались ранее. Похоже, что проблема решена.

Всего записей: 127 | Зарегистр. 16-09-2010 | Отправлено: 16:17 05-02-2021 | Исправлено: fscpsd, 16:26 05-02-2021
yurkesha



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

Не умеешь читать, не обучен вежливости, странно признаешь свои ошибки и непонимание..
Бай...

Всего записей: 2701 | Зарегистр. 15-12-2003 | Отправлено: 19:48 05-02-2021
fscpsd

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Заметил странное поведение shutdown.exe в среде Windows7/Server2008 — иногда эта утилита выводит своё предупреждение о завершении работы явным образом, прямо по центру экрана, в большом окне, которое появляется поверх всех остальных окон и требует нажатия клавиши для закрытия, а иногда почему-то выдаёт лишь скромное маленькое оповещение в углу экрана, а районе области уведомлений, которое почти сразу исчезает само. Может, кто-нибудь знает, от может зависеть такая разница в поведении?
 
Ну, и заодним вообще хотелось бы узнать о наиболее надёжных способах оповещения пользователей о грядущем завершении работы, чтобы уж точно нельзя было прохлопать ушами и не заметить.

Всего записей: 127 | Зарегистр. 16-09-2010 | Отправлено: 07:19 09-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Вернемся к вопросу:
Цитата:
имя файл dt-выгрузки формирую: set BAK_NAME=f:\workspace\1C\1с_Архивы\AAAAkit\AAAAkit_%date:~0,2%%date:~3,2%%date:~6,4%.dt. А если за ночь дата сменилась, есть возможность сформировать имя по "вчерашней" дате, дней в месяце разное?
Есть ли возможность сформировать имя по "вчерашней" дате, если текущий час времени меньше 6 часов? (это условие тоже желательно написать) Как?

Всего записей: 5355 | Зарегистр. 23-06-2008 | Отправлено: 10:35 10-02-2021
Fenrizz



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

Код:
PowerShell -Command "if ((Get-Date).Hour -lt 6) {(Get-Date).AddDays(-1) | Get-Date -Format 'ddMMyyyy'} else {Get-Date -Format 'ddMMyyyy'}"  

Всего записей: 360 | Зарегистр. 12-09-2017 | Отправлено: 11:26 10-02-2021 | Исправлено: Fenrizz, 11:27 10-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fenrizz
Не понял, а где результат, который должен подставить в
Код:
set "BakName=f:\workspace\1C\1с_Архивы\AAAAkit\AAAAkit_%date:~0,2%%date:~3,2%%date:~6,4%.dt"
вместо date?

Всего записей: 5355 | Зарегистр. 23-06-2008 | Отправлено: 12:43 10-02-2021
Fenrizz



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ты пробовал запускать этот код?  

Код:
PowerShell -Command "if ((Get-Date).Hour -lt 6) {(Get-Date).AddDays(-1) | Get-Date -Format 'ddMMyyyy'} else {Get-Date -Format 'ddMMyyyy'}"  

Или ты пытаешься вслепую из кусков кода собрать готовый файл не проверяя?

Всего записей: 360 | Зарегистр. 12-09-2017 | Отправлено: 12:48 10-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fenrizz
Нет, не пробовал. Просто вставить этот код перед моей строкой, и date встанет вчерашней? (если текущий час времени запуска меньше 6 часов)

Всего записей: 5355 | Зарегистр. 23-06-2008 | Отправлено: 13:05 10-02-2021
Fenrizz



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
M_Volkov
Я бы посоветовал всё-таки попытаться понять, что делает каждая команда, а не просто копипастить всё подряд
 

Код:
FOR /F "usebackq tokens=*" %%I IN (`PowerShell -Command "if ((Get-Date).Hour -lt 6) {(Get-Date).AddDays(-1) | Get-Date -Format 'ddMMyyyy'} else {Get-Date -Format 'ddMMyyyy'}"`) DO SET filename=AAAAkit_%%I.dt  

 
После этого  %filename% будет имя файла в виде AAAAkit_ddMMyyyy.dt, где ddMMyyyy - вчерашняя или сегодняшняя дата в виде 11022021

Всего записей: 360 | Зарегистр. 12-09-2017 | Отправлено: 13:21 10-02-2021 | Исправлено: Fenrizz, 13:46 10-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fenrizz
Пытаюсь... (дико извиняюсь за свое...) Вместо: DO SET filename=AAAAkit_%%I.dt могу написать свое: DO SET BakName=AAAAkit_%%I.dt? Путь: f:\workspace\1C\1с_Архивы\AAAAkit\ вроде не нужен, если они в одном каталоге с bat-файлом (его путь такой же)?

Всего записей: 5355 | Зарегистр. 23-06-2008 | Отправлено: 13:48 10-02-2021
Fenrizz



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

Цитата:
Вместо: DO SET filename=AAAAkit_%%I.dt могу написать свое: DO SET BakName=AAAAkit_%%I.dt?  

Да, любое имя переменной.
 

Цитата:
Путь: f:\workspace\1C\1с_Архивы\AAAAkit\ вроде не нужен, если они в одном каталоге с bat-файлом (его путь такой же)?

Вообще текущий каталог может и не совпадать. Поэтому лучше в начале файла перейти в него:
cd /d "%~dp0"

Всего записей: 360 | Зарегистр. 12-09-2017 | Отправлено: 13:56 10-02-2021 | Исправлено: Fenrizz, 13:58 10-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Для лог-файла
Код:
set "LogName=f:\workspace\1C\1с_Архивы\AAAAkit\AAAAkit.log"
тоже можно путь не писать?

Всего записей: 5355 | Зарегистр. 23-06-2008 | Отправлено: 13:58 10-02-2021
Fenrizz



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не факт, что 1C будет писАть именно в текущий каталог, так что я бы оставил полный путь.

Всего записей: 360 | Зарегистр. 12-09-2017 | Отправлено: 13:59 10-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Fenrizz
Да, не факт чем задается текущий каталог. Оставлю полные пути. Хотя 1С запускает bat-файл с полным путем:
Код:
ЗапуститьПриложение(КаталогАрхиваАльфаАвто() + "AAAAkit.bat");
Ночью до конца поверю... Спс.

Всего записей: 5355 | Зарегистр. 23-06-2008 | Отправлено: 15:03 10-02-2021
Starback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Друзья! Помогите, пожалуйста, создать *.bat-файл для последовательного пингования локальных IP-адресов 192.168.100.2 и 192.168.100.1 с параметрами и выводом информации, как на скриншоте. Благодарю за помощь!
 
http://images.vfl.ru/ii/1613003768/762ff85a/33289941.png

Всего записей: 532 | Зарегистр. 17-09-2010 | Отправлено: 03:42 11-02-2021
Khutr

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Starback
 
:loop
ping 192.168.100.2 | find "TTL"
if errorlevel 0 (echo PING SUCCESS at %date% %time%)
ping 192.168.100.1 | find "TTL"
if errorlevel 0 (echo PING SUCCESS at %date% %time%)
goto end
else
(echo PING FAILED at %date% %time%)
:end
<sleep 1 min>
goto loop
 

 
Пользуюсь таким, может пригодится.

Всего записей: 7 | Зарегистр. 25-04-2012 | Отправлено: 06:04 11-02-2021 | Исправлено: Khutr, 06:07 11-02-2021
Starback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Khutr, спасибо! Может быть, правильнее - изменить последовательность пингования. Сначала - 192.168.100.1 (модем), потом, если он недоступен (if errorlevel 0), пинговать сетевой адаптер компьютера 192.168.100.2. И ещё - на скриншоте нет результатов пингования 192.168.100.1. Это так должно быть, или нужно что-то в этом файле поменять? Благодарю за помощь и совет

Всего записей: 532 | Зарегистр. 17-09-2010 | Отправлено: 09:08 11-02-2021
Starback



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Потестировал - отлично Только вот... Что нужно добавить, чтобы после окончания пингования (в любом случае) окно не закрывалось?

Всего записей: 532 | Зарегистр. 17-09-2010 | Отправлено: 19:58 11-02-2021 | Исправлено: Starback, 19:59 11-02-2021
M_Volkov



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
A27
Цитата:
Команды, содержащие русские буквы вписывайте между строк: chcp 1251
Обязательно перед командой содержащей русские буквы? В начале bat-файла бесполезно?
Еще, в bat-файле есть комментарии на русском. Во время исполнения bat-файла они выводятся в черном окне непонятными козявками. Их можно сделать читаемыми?
 
Добавлено:
Ладно с козявками... когда все нормально, команда
Код:
rem Непосредственно создание файла dt-выгрузки
"C:\Program Files (x86)\1cv8\8.3.10.2466\bin\1cv8s.exe" DESIGNER /S "andromeda\AAAAkit" /N"Администратор" /P"1001221" /DumpIB %BakName% /Out %LogName% -NoTruncate /DisableStartupMessages /UC AllowRobotLogon
выполняется около 5 минут, черное окно висит, могу читать реальные значения переменных: BakName, LogName. А когда нет, то окно только мигнет, ничего не прочитать!? Как бы в режиме отладки задержать черное окно?

Всего записей: 5355 | Зарегистр. 23-06-2008 | Отправлено: 04:55 12-02-2021 | Исправлено: M_Volkov, 04:56 12-02-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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru