Задать вопрос
Профиль пользователя заблокирован сроком с 5 мая 2024 г. и навсегда по причине: нарушение п. 5.3 и 5.7 правил сайта в профиле
  • Какая сложность у такого цикла for?

    wisgest
    @wisgest
    Не ИТ-специалист
    Да. Цикл выполнится столько раз, сколько значащих двоичных цифр в N. Количество цифр в записи натурального числа N без возможных незначащих ведущих нулей приблизительно равно его логарифму (целая часть логарифма N+1 по основанию системы счисления).
    Ответ написан
    Комментировать
  • Как добавить отметку времени в выводе команды ping?

    wisgest
    @wisgest
    Не ИТ-специалист
    Вывод команды ping перенаправляется на вход сложной команды.

    При перенаправлении ввода-вывода между командами (|) в cmd (сказанное не относится к перенаправлению в/из файл(а)), когда с какой-то из сторон стоит внутренняя или составная команда, для неё запускается отдельный процесс cmd.exe, поэтому лучше задать это явно, чтобы иметь возможность точно указать параметры его запуска, как мудро и проделано в рассматриваемом примере (но, похоже, забыли про обычно используемый в таких случаях ключ /d для отключения выполнения возможных команд из реестра при запуске нового процессаcmd).

    1. Как работает эта часть кода (pause&pause)>nul

    Пропускаются две первые строки из входного потока принимающего процесса:
    pause ожидает ввод от пользователя и, когда на её вход поступает строка, прекращает ждать, >nul подавляет (перенаправляет на пустое устройство) приглашение от pause нажать любую клавишу (в данном случае подавляется весь вывод составной команды, состоящей из двух pause).

    Вместо этого можно было без >nul использовать, например, две команды set /p, даже и не указывая перед знаком равенства имя переменной, в которую вводится строка.

    Добавлено: Как выяснилось при обсуждении вопроса, дело обстоит сложнее…

    2. Как работает эта часть set /p "data=" && echo(!date! !time! !data!)

    Очередная строка из входного потока вспомогательного процесса cmd, то есть из выходного потока ping, помещается (set /p) в переменную окружения data и в случае успеха (&&), за который считается то, что была введена непустая строка (иначе переменная окружения не изменяется), выполняется следующая команда echo, выводящая строку из разделённых пробелами псевдопеременных date, time и только что установленной переменной data.
    Псевдопеременные date иtime содержат текущие дату и время, но только если не определены одноименные переменные окружения, поэтому для учёта всех возможных случаев их следовало бы в начале явным образом сбросить.

    Имена переменных заключены в восклицательные знаки, а не знаки процента, для отложенного раскрытия изменяющихся переменных в команде повторения (цикле) , а не однократной подстановки их значений до выполнения цикла. Возможность использовать отложенное раскрытие в данном случае включается ключом /v команды cmd. (Возможно также для отложенного раскрытия использовать команду call…)

    Открывающая скобка сразу после echo — это не открывающая скобка составной команды, а разделитель между командой echo и её аргументом, а закрывающая скобка относится к составной команде в цикле for /l %a in () do.

    Зачем нужна команда ping -n 2 8.8.8.8>nul после бесконечного цикла, я не знаю и буду рад увидеть разъяснения этому.
    Добавлено: Но без неё изменяется формат вывода:
    7.10.2022 21:47:58,02 Ответ от 8.8.8.8:
    7.10.2022 21:47:58,04 число байт=32 время=244мс TTL=104
    7.10.2022 21:47:59,04 Ответ от 8.8.8.8:
    7.10.2022 21:47:59,04 число байт=32 время=240мс TTL=104
    7.10.2022 21:48:00,05 Ответ от 8.8.8.8:
    7.10.2022 21:48:00,05 число байт=32 время=233мс TTL=104


    Спасибо за интересный вопрос!
    Ответ написан
  • Почему не работают поддомены в ispmanager 6?

    wisgest
    @wisgest
    Не ИТ-специалист
    Поддержка с сервера написала, что нужно ждать до сутки, неужели это правда?

    Вполне возможно. Иногда двое и даже трое. Но дело не в ISPmanager, который вы указали в теге вопроса, а в dns propagation (не помню, как это по-русски). Пропишите IP-адрес вашего поддомена в файл hosts и проверьте (желательно, в режиме инкогнито веб-обозревателя), будет ли он открываться у вас. Если это так, то «Ответ легко ищется поисковиком».

    Не понимаю, в чём смысл второй картинки: на ней не видно, относятся записи к основному домену или поддомену.

    рядом с папкой сайта site.com, создал папку test.site.com

    Возможно, надо не рядом, а внутри, и не test.site.com, а просто test. Но вы сами должны были перепробовать эти варианты, прежде чем задавать вопрос.
    Ответ написан
    7 комментариев
  • Как расставить приоритетность выполнения арифметических операций в bat?

    wisgest
    @wisgest
    Не ИТ-специалист
    Как уже сказал Sergei Nazarenko, можно экранировать скобки (достаточно закрывающие), но лучше взять выражение в кавычки. В set /a не следует без необходимости и понимания заключать имена переменных в знаки процента, так как в этом случае их значения будут подставлены до выполнения составной команды, что приведёт к ошибкам, например, в цикле.
    set /a "sum = (x + x) * c * x"
    или
    set /a sum = "(x + x) * c * x"
    Ответ написан
    Комментировать
  • Как из cmd открыть ссылку с автовыбором браузера?

    wisgest
    @wisgest
    Не ИТ-специалист
    Командой start:
    start https://qna.habr.com/q/1139478
    Ответ написан
    Комментировать
  • Можно ли использовать синтаксис HTML и JScript в приложении HTA?

    wisgest
    @wisgest
    Не ИТ-специалист
    Можно ли использовать синтаксис HTML и JScript в приложении HTA?

    Безусловно можно по определению. Только WScript — не встроенный объект самого языка, его доступность зависит от среды в которой используется язык.
    Должно работать
    var WshShell = new ActiveXObject("WScript.Shell");
    (это должно работать и в WSH).
    Насколько помню, объект WshShell можно создать и в HTML с помощью тега <object/> с соответствующим аттрибутом classid (его значение можно поискать в системном реестре).

    Возможно, вам чем-то поможет тема «HTA: не найден объект Wscript» (скорее всего, она не единственная по вопросу на том форуме)
    Ответ написан
    1 комментарий
  • Кто знает РАБОЧИЙ способ запретить хрому самому (без редиректа на сайте) переходить на https?

    wisgest
    @wisgest
    Не ИТ-специалист
    Ввести в адресной строке chrome://net-internals/#hsts, прокрутить до формы Delete domain security policies.
    Ответ написан
  • Как разделить xml файл спомощью bat/cmd?

    wisgest
    @wisgest
    Не ИТ-специалист
    Если файл будет иметь именно такой вид, то это просто (при этом будут потеряны пустые строки, если они есть):
    @echo off
    setlocal enableextensions enabledelayedexpansion
    
    :0
    if "%~1" == "" (
    	set /p in="Входной файл: "
    	call :0 !in!
    	exit /b
    )
    
    if not exist "%~1" (
    	echo "%~f1" не найден.
    	endlocal
    	exit /b 1
    )
    
    set /a i = 0
    for /f "usebackq skip=1 delims=" %%L in ("%~1") do  (
    	if "%%L" == "<post>"  (
    		set /a i += 1
    		(echo ^<?xml version="1.0" encoding="UTF-8"?^>)>!i!.xml
    	)
    	(echo(%%L)>>!i!.xml
    )
    endlocal

    — XML-формат не учитывается, идёт разделение по строкам <post>, которые должны начинаться с начала строки и не иметь пробелов в конце строки.
    Ответ написан
    8 комментариев
  • Как удалить префикс у всех файлов?

    wisgest
    @wisgest
    Не ИТ-специалист
    Если в пакетном файле, то можно
    ren "-@xxx*" "     *"
    for %%i in ("     *") do  for /f "tokens=*" %%j in ("%%i") do  ren "%%i" "%%j"

    — первой командой префикс заменяется пробелами (количество пробелов равно длине префикса, см. https://qna.habr.com/q/1059906#answer_2036902), а второй убираются пробелы.
    Ответ написан
  • Не работает простой редирект с одной страницы на другую?

    wisgest
    @wisgest
    Не ИТ-специалист
    Redirect 301 https://example.com/plotternaya-rezka https://www.example.com/
    А документацию хоть пробовали читать? В пути источника перенаправления не указываются протокол и хост:
    Redirect 301 /plotternaya-rezka https://www.example.com/
    Ответ написан
    Комментировать
  • Как с помощью for добиться такого же результата, что и командой dir?

    wisgest
    @wisgest
    Не ИТ-специалист
    Справку пробовали почитать: for /??

    Выводит папки и все файлы в папке в виде полного пути.

    Файлы— for с ключом /r. Если нужны подкаталоги, используйте ключи /d /r. В одном списке без перехвата вывода команды dir, скорее всего, нельзя.
    Ответ написан
    Комментировать
  • Как правильно экранировать строку?

    wisgest
    @wisgest
    Не ИТ-специалист
    В общем случае вопрос не такой уж простой.
    Первоначальный ответ без учёта того, что команды в скобках
    В данном случае можете заменить | на ^^^|:
    set LINE=block_image_update(map_partition("product_a"), package_extract_file("product.transfer.list"), "product.new.dat.br", "product.patch.dat") ^^^|^^^|	abort("E2001: Failed to update product image.");

    — экранируются | для set и ещё раз экранируются | и уже ^ для echo.

    В данном случае можно использовать отложенное раскрытие переменных и экранировать | и ):
    setlocal enabledelayedexpansion
    
    set s=1
    if %s% == 1 (
    
    set LINE=block_image_update(map_partition("product_a"^), package_extract_file("product.transfer.list"^), "product.new.dat.br", "product.patch.dat"^) ^|^|	abort("E2001: Failed to update product image."^);
    
    echo !LINE! >> file
    
    )
    Ответ написан
    2 комментария
  • Можно ли через cmd ограничить мощность CPU для php скрипта?

    wisgest
    @wisgest
    Не ИТ-специалист
    То, что вы написали, — параметры командной строки самого php и к cmd отношения не имеют. Обратитесь к документации по php.

    В cmd посмотрите на задание приоритета процесса при помощи команды start:
    LOW Запуск приложения с приоритетом IDLE.
    BELOWNORMAL Запуск приложения с классом приоритета BELOWNORMAL
    Ответ написан
    Комментировать
  • Как сделать недоступным один из url адресов?

    wisgest
    @wisgest
    Не ИТ-специалист
    Имитируйте соответствующую страницу с сообщением об ошибке. Желательно с учётом User-Agent.
    Ответ написан
    Комментировать
  • Какие есть сервисы почты для домена?

    wisgest
    @wisgest
    Не ИТ-специалист
    Zoho Mail, Inbox.eu (ссылка реферальная).
    Ответ написан
    Комментировать
  • Как реализовать обработку исключений в CMD?

    wisgest
    @wisgest
    Не ИТ-специалист
    КОМАНДА1 && КОМАНДА2
    — вторая команда выполняется, если первая завершилась без ошибок.
    КОМАНДА1 || КОМАНДА2
    — вторая команда выполняется, если первая завершилась с ошибкой.

    КОМАНДА && echo Ошибок нет! || echo Ошибка!

    (Для объединения нескольких команд в составную можно использовать скобки, переносы строк или знак & между командами в одной строке. Для размещения одной простой команды на нескольких строках можно использовать ^ в конце переносимой строки…)
    Ответ написан
    Комментировать
  • Как сделать файл bat для перемещения папок в папку?

    wisgest
    @wisgest
    Не ИТ-специалист
    Использовать цикл с ключом /D:
    for /d %%D in (C:\1\*) do move "%%D" C:\2\
    Ответ написан
    1 комментарий
  • Как удалить все вложенные папки(cmd)?

    wisgest
    @wisgest
    Не ИТ-специалист
    Если речь не идёт об удалении самого каталога, использовать цикл с ключом /D:
    for /d %d in (*) do rd /s "%d"
    (в командном файле % надо удвоить).
    Ответ написан
    Комментировать