Опять заметка от склероза, и чтоб не пролюбить инфу.
BAT/CMD. Задержка (тайм-аут), пауза, аналог команды sleep Linux в DOS/Windows
Почему-то Вовчик Воротов еще со времен DOS не мог в командный процессор добавить встроенную команду sleep
<секунд>, которая обеспечивает паузу в скрипте BAT/CMD, как это делается в том же bash. Но есть насколько решений.
CHOICE
.Совместимость: командные процессоры, начиная с DOS 6.00, включая все версии Windows.
Утилита CHOICE.EXE
изначально предназначена для запроса ответа пользователя (Да/нет), например, вызов команды
choice /M "Request Text"
где,
"Request Text"
— текст вопроса
отобразит в консоли следующее:
Request Text [Y,N]?
Пользователь должен будет нажать клавишу Y
или N
, код возврата можно будет отследить в BAT-скрипте в переменной %ERRORLEVEL%
, Y
— 1
N
— 2
.
Однако, можно сделать из команды CHOICE
задержку в скрипте, используя следующий синтаксис:
choice /T [секунд] /D [любой_символ] >nul
где,
/T [секунд]
— включить задержку на [секунд]
секунд.
/D [любой_символ]
— ответ по умолчанию (без него не будет работать параметр /T
).
>nul
— отправить вывод сообщения команды в >nul
, дабы не загрязнять вывод скрипта.
Например:
choice /T 1 /D y >nul
установит задержку в одну секунду.
+ Максимально совместимая команда, начиная с DOS 6.00.
— Не является встроенной командой, может отсутствовать в сборках Windows/DOS или образах Windows PE/загрузочных образах DOS
— Команда может спровоцировать зависание скрипта на неопределенный срок, если скрипт был вызван в определенных условиях, когда командный процессор cmd.exe
был вызван иным приложением Windows, выполняющим перехват STDOUT
консоли.
TIMEOUT
Совместимость: Windows 7 и выше.
Синтаксис:
timeout /T [секунд]
или
timeout [секунд]
где,
[секунд]
— время в секундах.
+ К Windows 7 Вовчик Воротов таки озаботился командой, позволяющей делать стандартную задержку в BAT-скриптах.
— Нет в более ранних версиях Windows и DOS
— Если BAT-файл запущен в приложении, перехватывающем STDOUT
(консольный вывод), могут случиться необоснованные глюки.
— Не является встроенной командой, может отсутствовать в сборках Windows или образах Windows PE
Пример:
timeout /T 1 >nul
WAITFOR
Совместимость: Windows 7 Professional и выше.
Вообще эта команда предназначена для другого, она отправляет или ожидает системного сообщения. Примерно того же, чем являются системные сообщения в Linux, например SIGTERM
и SIGKILL
, хотя и весьма условно — в Windows они устроены несколько по-другому. Если программе указать заведомо несуществующее системное сообщение и время ожидания — программа сработает как пауза в BAT/CMD скрипте:
waitfor /T [время] [сообщение(строка)] 1>nul 2>nul
где,
/T [время]
— [время]
время ожидания, секунд.
[сообщение(строка)]
— можно использовать любую случайную строку, не совпадающую с известными системными сообщениями.
1>nul
— перенаправление стандартного потока вывода (STDOUT
) в устройство nul
.
2>nul
— перенаправление стандартного потока ошибок (STDERR
) в устройство nul
.
Два последних переопределения используются для того, чтобы не замусоривать вывод скрипта.
Пример (скрипт будет ожидать 1 секунду):
waitfor /T 1 zhzhz 1>nul 2>nul
+ Не вызывает зависаний при перехвате консольного вывода скрипта внешним приложением
— Нет в более ранних версиях Windows/DOS
— Не является встроенной командой, может отсутствовать в сборках Windows или образах Windows PE
ping
Совместимость: DOS, с установленными программами поддержки сети, все версии Windows
ping
на locallhost
можно использовать, как команду для задержки в BAT-файле. Хотя, этот способ не рекомендуется использовать, т.к. время задержки может отличаться в зависимости от количества отправленных пакетов, «железа» компьютера или версии ОС.
Пример:
ping -n 3 127.0.0.1 >nul
127.0.0.1
— IP-адрес localhost
-n 3
, т.е. 3 пакета отправленные на localhost
дают примерное время ожидания в 1 секунду на Windows 7, на ноутбуке HP Pavilion
+ Есть во всех версиях Windows/DOS где есть стандартная поддержка сети от MS
+ При перехвате STDOUT
не глючит
— Время задержки определяется весьма приблизительно.
Самостоятельных реализаций sleep/timeout написана вагон и маленькая тележка. Например, одну из них можно скачать на GitHub:
Запуск:
sleep <секунд>
Пример:
sleep 1 >nul
+ Сбоев не обнаружено
+ Совместимость: Все версии Windows x86/x64
+ Имеются исходники, можно пересобрать под DOS при наличии компилятора Freepascal.
— Внешняя нестандартная утилита, придется таскать вместе с BAT/CMD файлом.
Впрочем, таких утилит много, все имеют свои плюсы и минусы. Выбирайте под конкретную задачу нужный вам способ.
CMD/BAT, генерация случайных чисел.
Применимо к линейке ОС Windows NT, начиная, как минимум с Windows 2000, x86 и x64 версий[прим. ред.]
Командный процессор Windows (CMD) содержит встроенную переменную %RANDOM%
, которую можно использовать для генерации случайных чисел.
%RANDOM%
генерирует случайное целое число от 0
до 32767
(включительно).
echo %RANDOM%
Диапазон генерируемых чисел можно уменьшить с помощью небольшого лайфхака, команда SET
не только устанавливает значение пользовательских переменных окружения, но и может производить простейшие арифметические операции.
Например, можно сгенерировать случайные числа в диапазоне от 1
до 500
:
@ECHO OFF
SET /a _rand=(%RANDOM%*500/32768)+1
ECHO Random number: %_rand%
Если попытаться сгенерировать случайные числа больше чем 32767
, то это приведет к проблемам, хотя с виду все будет работать. Например, если в вышеприведенном коде заменить 500
на 65536
, то это приведет к генерации последовательности «случайных» чисел, которая будет состоять только из нечетных чисел.
Распределение возвращаемых чисел определяется, как диапазоном, так и количеством итераций генерации случайных чисел.
Например, если вы генерируете числа в диапазоне от 1 до 100 то в среднем:
— При генерации 10 чисел, примерно 6% будут дублироваться
— При генерации 100 чисел, этот процент вырастет до 63, т.е. 63% сгенерированных чисел будут дубликатами, т.е. совпадать с одним или несколькими из остальных 99 чисел.
— Если сгенерировать 1000 чисел, почти все будут дублироваться, т.к. есть только 100 возможных значений.
Псевдослучайная последовательность не является истинно случайной и определяется небольшим набором начальных условий.
В случае %RANDOM%
, начальное значение зависит от текущего времени (системного таймера), когда произошел запуск экземпляра командного процессора. Это может создать проблему, когда проходит примерно одно и то же время перед обращением к переменной %RANDOM%
и запуском самого скрипта, одновременно со стартом экземпляра командного процессора. Возвращаемое число будет находиться в небольшом предсказуемом диапазоне.
В качестве примера создайте файл numbers.cmd
, содержащий следующий код:
@Echo off
Echo %RANDOM%
И запустите его следующим образом:
cmd /c numbers.cmd
cmd /c numbers.cmd
cmd /c numbers.cmd
...
Раймонд Чен из MSFT подробно описывает, почему %RANDOM%
в cmd.exe не такой уж случайный.
Йоханнес Баагё опубликовал сравнение лучших алгоритмов генерации случайных чисел на javascript. Самый быстрый из них — Alea(), копия которого представлена по ссылкам ниже или в источнике.
Эта реализация имеет ряд преимуществ: можно генерировать числа большие, чем позволяет %RANDOM%
, можно быстро сгенерировать много чисел, можно создавать псевдослучайные последовательности, т.е., результаты станут повторяемы, если вы вызовете скрипт с указанием одного и того же начального числа, т.е сами зададите начальные условия.
Впрочем, не стоит использовать эти «случайные числа» для чего-то серьезного, в винде так и нет нормального штатного генератора случайных чисел, и изначально не было. В худшем случае стоит пользоваться библиотеками криптопровайдера, в лучшем — аппаратным генератором. (прим. ред.)
Скрипт random.js на PasteBin
Источник
Перевел Серёга «PTZSnake jr.» Неклюев
Специально для Tolik-punkoff.com
Редактор: Leha Silent
Все права идут нахуй.
Секта хоккеистов, бандеровцы и кот.
Вместе с одногруппником убегали от гопников в районе круглосуточного магазина и дома культуры, и магазин, и ДК и одногрупник существуют в реале. Гопники тоже. Нас от гопников отбил симпатичный высокий блондин лет 17-ти, примерно.
Блондин потом стал нам жаловаться, мол папа мудак, несет какую-то хуйню, заставляет его заниматься хоккеем, хотя ему этот хоккей нахуй не вперся. Я ответил, чтоб он сам думал, и послал нахуй токсичного родителя, и мы с одногруппником пошли домой.
Однако, батя хоккеиста нас перехватил, хотя одногруппник успел свалить, а вот меня батя пацана повел неведомо куда, впрочем, почти добровольно, хотя пару раз дернул за ухо. Да, во сне лет мне было меньше, чем ИРЛ. В итоге, с батей хоккеиста мы зашли в подвал Дома Культуры через неприметную постройку на противоположной стороне дороги.
Ну у них там и накопано было! Какие-то подземные тоннели, целое ледовое поле для хоккея, двери в несколько раздевалок для хоккеистов (в одной из я заметил того самого парня, сына главы секты).
Батя привел меня в свой кабинет, дальше был разговор, правда ли я убеждал его сына послать его нахуй. Я переобулся в воздухе и сказал, что нахуй никого не посылал и не просил, а вот думать самому велел.
Тут этот батя как-то резко смягчился, сказал, «ты нам подходишь, умный парень» и предложил сходить на их собрание, ну как предложил — добровольно-принудительно, впрочем, я пошел и мне даже стало интересно, что за хрень тут творится, и как они без ведома мэрии тут всего понастроили.
Пока шли до зала собраний, я услышал какой-то шум сверху:
— Что это?
— Не беспокойся, это бандеровцы заседают, но они входа к нам не найдут.
Собрание проходило в каком-то совдеповском актовом зале, везде стояли медсестры в белых халатах, куча народа уже заняли места и попивали жидкость, похожую на разбавленный кисель. Меня подозвала медсестра, спросила, новенький ли я, и после утвердительного ответа, усадила меня на стул, перетянула руку жгутом и въебала укол непонятной красной хрени, которая выглядела как кортексифан из сериала Грань (Fringe). Причем медсестра утверждала, что тут все натуральное, это не наркотик, а смесь трав разработанная лидером хоккейной секты.
От укола мне стало реально больно (дальше расскажу почему). А потом началась лекция, где батя хоккеиста втирал хуйню про личностный рост, саморазвитие и преданность компании, в духе инфоцыган. Кстати, легкую эйфорию я тоже испытывал. И если боль я объясню ниже, то как объяснить виртуальный наркотик, я хз. А мне стало тяжело дышать, и мне подали напиток, тот самый разбавленный кисель, мне с него стало легче, но я подумал, что пора валить и тихо съебал, как-то умудрившись найти лестницу наверх.
Далее не помню, походу я к бандеровцам побежал.
Дальше бегаю по лестницам, за мной бегал батя хоккеиста с криками «Предатель, убью», изо всех щелей валит дым, из окон разбитых (бегаем уже не в подвале) тоже валит дым, где-то кого-то пиздят, меня в окно выбрасывает какой-то пацан, я планирую на землю, просыпаюсь. Бандеровцы разгромили хоккейную секту.
Вы спросите, а кот, кот где же?
А кот был в реальности, сначала ему ебнуло в кошачий мозг кусать меня за руку в районе локтевого сгиба, что мозг во сне отобразил, как укол, а потом эта тварь мне на грудь забралась, почти на шею, что и вызвало приступ удушья во сне, совместно с апноэ.
Самое прикольное с научной точки зрения, как реальность происходящего с телом влияет на сюжет сна. Ученых на эту проблему нет :((
И как я немного кайфанул от выдуманного наркотика? Причем сознание явно смешало клюквенный морс, кортексифан из давно просмотренного сериала, и эффект экстази, только во сне более слабый, чем в реальности. Да, пробовал. Верните мне мой 2007-й.
Британские ученые, вы где?
CMD/BAT Переопределение (redirect) STDERR (стандартного потока вывода ошибок) куда-нибудь.
Ну, например, в файл или в nul
.
Не знал, что в Windows работает линуксовый синтаксис:
someprogramm.exe parameters 1>nul 2>nul
Или так:
someprogramm.exe parameters >nul 2>nul
1>
или >
— стандартный поток вывода (STDOUT
)
2>
— стандартный поток вывода ошибок (STDERR
)
Причем, если бы в грозу не вырубило интернет, хрен бы узнал. Никогда не надо было, а тут понадобилось. Психанул и написал как в Линуксе, ВНЕЗАПНО, сработало.
Вовчик Воротов даже куски синтаксиса у никсоидов тырил?
C#, тайм-аут (sleep) в консольной программе.
Проще всего это сделать с помощью остановки потока (thread):
System.Threading.Thread.Sleep(время_в_миллисекундах);
Например:
System.Threading.Thread.Sleep(250);
остановит выполнение основного потока программы (если поток один, соответственно, программу) на 250 миллисекунд:
static void Main(string[] args) { //какой-то код System.Threading.Thread.Sleep(250); //какой-то код }
БрокаЦентр Live@DDT Part #2
Tracklist:
00:00 — Охотник (cover КиШ)
03:02 — Подруга (вроде как на стихи Есенина, или это уже Антоша вдохновлялся)
06:44 — Rebels
10:22 — Бои без правил
14:50 — Все по-другому (оно там почти два раза, Антоша забыл текст на середине песни :))
19:42 — Стихи Кота или Глока, я хз. И вообще пошла всякая хрень, вроде как бухие перепевки Пилота непонятно кем, вроде Котом 🙂
Прямая ссылка: https://youtu.be/g5tJ75W3FTw
C#, получение списка дисков, доступных в системе, и некоторых их параметров
Заметка от склероза.
Делается с помощью функции DriveInfo[] Drives = DriveInfo.GetDrives();
из пространства имен System.IO
.
DriveInfo.GetDrives()
на MSDN
Класс DriveInfo
на MSDN
Пример кода на PasteBin
БрокаЦентр Live@DDT Part #1
Прямая ссылка: https://www.youtube.com/watch?v=xH_gR-Elidg
Tracklist:
00:00 — Молодость
04:08 — Пьяница (на стихи С. Есенина)
07:24 — Настёна
10:49 — Красно-чёрная
15:02 — Конопля
18:24 — Сыпь, гармоника (на стихи С. Есенина)
21:58 — Рожь (немного ватная песня по нынешним временам 🙂
Скачать трек с Mega.nz (MP3)
На SoundCloud
ЗЫ. Мише Вербицкому должен понравиться первый трек 🙂 Пусть потом отпишется на ЛЖР, если будет время послушать.
А. Кульский. На перекрестках Вселенной.
Блин, умудрился купить эту книгу в букинистическом магазине 🙂 Давно ее искал. Рад чрезвычайно.

Данное издание — один из вариантов альтернативной истории, который с несколько новой точки зрения выводит нас на проблемы НЛО, развитие тайных наук и позволяет еще раз взглянуть на проблемы добра и зла.Эта книга о тех, кто давным-давно, тысячи лет назад, возможно нашел ту Тайную Тропу в бесконечную Вселенную, которую так упорно искали люди науки как в этом веке, так и в прошлом. О тех, кто прошел первым по этой тайной тропе.Рассчитана на широкий круг читателей.
Т.А.Б.Ч. — Фрагмент из мелодекламации СЛЕДЫ ЖИВЫХ
Прямая ссылка: https://www.youtube.com/watch?v=xH_gR-Elidg
Менеджер отложенной автозагрузки / StartupDelayed v 0.0.2
+ Исправлен баг с сохранением конфигурации при удалении записей (спасибо SCPicker за тестирование и сообщение).
+ Убран режим выбора каталога конфигурации из командной строки, оставлен только обычный (файлы конфигурации в LocalApplicationData\StartupDelayed\
) и портативный (файлы конфигурации в директории с программой).
+ Оптимизировано обнаружение запускаемых программ, сначала программа проверяет наличие соответствующего диска, если не задан относительный или сетевой путь.
+ Исправлены прочие мелкие недочеты.
+ Инсталлятор изменен на NSIS.
uMatrix после обновления стал завешивать Firefox.
Ну как завешивать, уже загруженная страница работает, а вот на другую не перейти вкладка частично висит.

А какой хороший был плагин… Это какой-то позор 🙁
Т.А.Б.Ч. — Live poetry@Library
Включение, отключение и настройка режима гибернации в Windows 7 и выше.
Сон (Windows Vista и выше) или Ждущий режим (Windows XP) — временное завершение работы ОС без выгрузки оперативной памяти в файл и закрытия приложений, т.е. ОС приостанавливает активную работу, снижает нагрузку на процессор, «гасит» ненужную периферию (монитор, жесткие диски, и даже останавливает вентиляторы, один фиг нагрузка на процессор минимальна). Выход из этого режима и возвращение к работе происходит по нажатию клавиш клавиатуры или кнопки питания на системном блоке ATX (они все сейчас ATX), или по прерыванию от мыши (можно изменить в настройках) или модема (у кого есть аналоговый модем? :)) .
Минусы этого режима:
— При отключении питания все несохраненные данные пропадут, т.к. фактически произойдет отключение питания у работающей машины, просто со сниженным до минимума энергопотреблением.
— При использовании внешних средств полного шифрования ОС, например, таких, как VeraCrypt и TrueCrypt, компьютер останется незащищенным до конца.
Плюсы:
+ Быстрый переход и выход из данного режима
+ Экономия места на системном диске, т.к. ОС не нужно держать на диске файл, размер которого равен размеру оперативной памяти, собственно, для выгрузки в него содержимого оперативной памяти.
Гибернация (Windows Vista и выше) или Сон (Windows XP) — завершение работы ОС и компьютера с предварительной выгрузкой оперативной памяти в файл hiberfil.sys
с последующим полным отключением питания ПК. При повторном включении, ОС загружает содержимое файла hiberfil.sys
обратно в оперативную память и продолжает работу.
Минусы:
— Требуется дополнительное место на диске.
— Если злоумышленнику удастся получить доступ к hiberfil.sys
, то возможна атака даже на систему, защищенную TrueCrypt и VeraCrypt (вроде как не всех версий). Пример атаки (копия)
— Более долгое время для перехода в рабочее состояние, по сравнению с режимом сна.
Плюсы:
+ В случае отключения электропитания в режиме гибернации, данные не потеряются.
+ Если системный диск зашифрован TrueCrypt/VeraCrypt потребуется ввод пароля
Гибридный спящий режим (присутствует, начиная с Windows Vista, включен по умолчанию) — сочетание первого и второго режима, электропитание компьютера не отключается полностью, а «гасится» только ненужная периферия, при этом оперативная память сбрасывается в hiberfil.sys
. Восстанавливает информацию из оперативной памяти, если во время спящего режима возник сбой питания (да, работает, я проверил). Сочетает плюсы и минусы предыдущих режимов.
Если «Сон» по умолчанию присутствует в меню «Завершение работы», то пункт «Гибернация» приходится включать вручную.
1. Проверяем, включен ли режим гибернации (или гибридный спящий режим), для этого открываем диск C:
и смотрим, присутствует ли в корне диска файл hiberfil.sys
. Файл является скрытым, потому включаем отображение скрытых файлов (ну или смотрим через Far Manager, например).

Если файла нет, как на иллюстрации, значит, режим гибернации полностью отключен. Если файл есть, переходим к пункту 5.
2. Запускаем командную строку от имени администратора (Пуск —> Все программы —> Стандартные)

3. Выполняем команду:
powercfg /h on
4. Перезагружаем компьютер.
Файл hiberfil.sys
появился.

Если необходимо полностью отключить режим гибернации и гибридный спящий режим, а также удалить файл hiberfil.sys
:
1. Нужно запустить командную строку в режиме администратора.
2. В командной строке ввести команду:
powercfg /h off
3. Параноики могут после этого запустить очистку свободного места на диске в любой программе безопасного удаления файлов, например, в Eraser’е.
Наиболее частая причина состоит в том, что этому может мешать какая-то программа:
— Просто зависшее приложение.
— Программа, производящая активные действия с файловой системой (архиватор, архивирующий/разархивирующий файлы, файловый менеджер, копирующий файл).
— Программы, способные запретить переход в спящий режим/режим гибернации: будильники, таймеры, торрент-клиенты, «качалки», и даже некоторые вирусы и скрытые майнеры.
Т.А.Б.Ч — И объяли меня…
Прямая ссылка: https://youtu.be/dyjitGMSI1g
N-ART 2021 #2
Царевна-Лягушка (Инопланетная)

Автор пожелал остаться неизвестным.
Сброс пароля Windows 7 при наличии доступа к системе.
Иными словами, как можно сбросить пароль Windows 7, если доступ к рабочему столу есть, а старый пароль неизвестен. Это можно в каком-нибудь зловредном скрипте использовать, но у меня цели были мирные — товарищ купил ноутбук б/у, который ему отдали, не сообщив пароль от учетной записи пользователя, а я ВНЕЗАПНО, зашел в Панель управления и увидел, что на учетку установлен пароль. По-хорошему бы вообще винду надо было переустановить, но сделал пока так. Повезло, что машина не ушла в гибернацию или в сон, и не выключилась, иначе пришлось бы ебаться с загрузочной флэшкой, выкачивать какой-нибудь ломатель паролей.
Внимание! Способ не сработает, если доступа к десктопу нет, и если запись Администратора тоже запаролена, и вы не знаете пароля и от нее.
1. Запускаем командную строку от имени Администратора (Пуск —> Все программы —> Командная строка, кликаем по ярлыку правой кнопкой мыши и выбираем Запуск от имени администратора)

2. В командной строке вводим:
net user <username> <new_password>
,
где:
<username>
— имя пользователя
<new_password>
— новый пароль
Например:
net user paulzovatel 666999
Имя пользователя не чувствительно к регистру символов, а пароль чувствителен.
N-ART 2021 #1
Давно у нас N-ART’а не было, наконец, прислали.
Почти иконография. Дева Мария Палеоконтактерша:

Полноразмерный вариант
Вариант с сепией/даггеротипом:

Полноразмерный вариант
Оригинал без пост-обработки:

Полноразмерный вариант
Автор пожелал остаться неизвестным.