• Как написать скрипт на bat?

    @res2001
    Нафига вы понаставили этих $$$$$? - тут же не perl и не bash. Просто ваш код резанул по глазам, можете не обращать внимания :)

    В целом подход правильный. Сам когда-то делал подобные сценарии для ftp.
    Пробовал просто в командной строке ввести команду,

    Вот с этого на самом деле и надо начинать. Сделайте все руками в ком.строке ftp, когда в этом режиме все получится, просто те же команды сунете в батник. Пока не добьетесь правильной работы в ручном режиме, нет смысла автоматизировать - только усложните отладку. Сами команды ftp, что в ком.строке ftp, что в ftp сценарии одни и те же.
    В самом ftp скудная справка из которой сложно что-то понять. Более подробно по командам ftp смотрите тут: https://learn.microsoft.com/en-us/previous-version...

    Что у вас там за кракозябры появляются местами?
    Вывод ftp "Consider using PASV." видимо говорит о том, что ftp сервер работает в пассивном режиме, клиенту то же надо задать этот вариант работы.

    Вообще к слову, ftp старый и не удобный протокол. Лучше бы использовать что-то другое. Можно например scp попробовать, правда встроенной поддержки в винде нет, надо использовать что-то стороннее (putty например).
    Написано
  • Почему собранный проект pyinstaller при вызове .bat не может выполнить команду start?

    @res2001
    В ключе /d команды start надо указывать "startup directory", т.е. текущий каталог, который будет выбран для запускаемой программы. У вас указан путь к исполняемому файлу.
    Если программа не зависит от текущего каталога, то ключ можно убрать вообще.

    При этом если заменить Popen на run, то всё работает,

    Вы уверены, что у вас вообще что-то выполняется?
    Т.к. вы запускаете батник, то видимо надо указывать параметр shell=true для popen, В Винде, в отличие от линукса, батники - это не исполняемые файлы, их умеет исполнять только cmd.exe. В линуксе ядро само способно запустить shell и в нем запустить скрипт (винда так не умеет).
    Кроме того смущает, что у вас же сразу после subprocess.Popen идет exit. Есть шанс, что до запуска второго процесса дело не доходит.

    Что бы понять что происходит на самом деле надо:
    1. Анализировать код возврата popen, обрабатывать его исключения
    2. Добавьте в конце батника команду pause, что бы окно сразу не закрывалось и вы смогли увидеть вывод команд. Того же самого можно добиться перенаправив потоки stdout и stderr батника в файл или с помощью popen.

    PS: Я не слишком силен в питоне, знаю его немного, пишу тут из-за тега cmd/bat.
    Написано
  • Vcpkg: почему видит хедеры, но не видит cpp файлы?

    @res2001
    forIXsins, Обычно нет нужды использовать отладочные версии библиотек, разве что вы хотите отладить саму библиотеку. Так что как правило используют release сборку библиотек всегда.
    Вот тут сказано как устанавливать только release версиии: https://learn.microsoft.com/en-us/vcpkg/get_starte...
    Тут вроде бы дается рецепт как заставить vcpkg использовать нужный вариант библиотеки: https://learn.microsoft.com/en-us/vcpkg/users/buil...
    Написано
  • Vcpkg: почему видит хедеры, но не видит cpp файлы?

    @res2001
    forIXsins,
    UPD2: Нашёл решение - поменял конфигурацию решения с Debug на Release и всё заработало

    Решение так себе, т.к. наверняка вам захочется в процессе разработки своего проекта использовать отладчик (даже если пока такой мысли не возникает). С release версией вы его использовать не сможете, а debug - у вас не собирается.
    Предполагаю, что надо просто установить debug версию библиотеки с помощью того же vcpkg. Как это сделать - смотрите в его документации.
    Впрочем должно быть и какое-то другое, более правильное, решение, т.к. ситуация когда используется библиотека в release сборке, а само приложение собрано в debug - вполне нормальная ситуация. Предполагаю, что просто надо задать в VS какие-то опции, чтоб она использовала сборки библиотек, те которые вам нужны, а не по собственному усмотрению. Какие именно опции задать, я не в курсе. Вероятно это рулится какими-то опциями/переменными VCPKG.
    Написано
  • Vcpkg: почему видит хедеры, но не видит cpp файлы?

    @res2001
    Не скажу ничего про vcpkg, мало с ним знаком. Но сами принципы подключения библиотек общие, каким бы компилятором или пакетным менеджером вы не пользовались. Про них и напишу пару слов.

    vcpkg - это просто пакетный менеджер, он ничего "не видит", ему это до лампочки. Он просто устанавливает пакеты из репозитория по правилам описанным в самом пакете.
    "Видит" или "не видит" компилятор при сборке проекта. НО!
    Когда вы подключаете библиотеку, то cpp/с файлы библиотеки не нужны в принципе компилятору. Он использует уже скомпилированный код в lib/dll (a/so) файлах. Для правильной сборки вашего проекта компилятору нужны только файлы заголовков библиотеки, т.к. в них описаны сигнатуры экспортируемых функций для формирования правильного вызова. А само тело функции найдется в lib/dll файле.
    Если у вас не хватает какого-то символа из библиотеки (а остальные все на месте), то возможно несколько вариантов:
    1. используемая вами версия библиотеки старая (или наоборот новая) и этого символа в этой версии библиотеки в принципе нет - он появился только в более новой версии библиотеки (или он устарел и его удалили из новой версии библиотеки). Как правило узнать об этом можно из документации на библиотеку, ну или порывшись в исходниках.
    2. Этот символ вообще не из этой библиотеки и вам нужно подключить еще какую-то.

    Для полноты вопроса вам надо добавить текст ошибки, которые выдает компилятор, чтоб людям было понятней, на что конкретно он ругается.
    Написано
  • Как реализовать VPN-соединение до удалённого сервера с установленным Vipnet?

    @res2001
    планировал подключаться к закрытым ресурсам через VPN по стандартному для Windows протоколу PPTP

    Уж лучше SSTP использовать, то же стандартный для винды.
    VPN Vipnet блокирует входящие пакеты

    Возможно в одном из двух ВПНов (или в обоих вместе) ВПН подключение является маршрутом по умолчанию.
    На сколько я понял вам доступ по ВПН нужен только к корпоративным ресурсам. Поэтому выключите галку "использовать как маршрут по умолчанию" (не помню точно как она называется, находится где-то в глубине настроек IPv4 ВПН соединения) и добавьте маршурты до корпоративных ресурсов вручную. Маршруты надо будет добавлять как на стороне клиента, так и на стороне промежуточного Windows Server 2022. С помощью команд powershell (Add-VpnConnectionRoute) можно добавить статические маршруты, которые будут добавляться в таблицу маршрутизации при подключении к ВПН.
    При такой настройке ходить в корп.сеть вы будете через ВПН, а в интернет будете попадать напрямую.
    Написано
  • Какой гипервизор (на базе основной ОС, а не автономный) из популярных (VirtualBox, VMWare и др) больше подходит для бэкенд разработки и тестирования?

    @res2001
    tests12345, Похоже у вас каша в голове. У снапшотов достаточно узкое предназначение, не нужно их натягивать на темы куда они не натягиваются (2, 3). К тому же снапшоты удовольствие не бесплатное - платите и дисковым пространством хоста и некоторым замедлением дисковых операций в ВМ. Особенно когда у вас будут "ветки снапшотов" для одной ВМ.

    Из виртуализации использую на винде в основном WSL для большинства задач. Но иногда подключаю VirtualBox - мне регулярно бывает необходимо установить специфические сборки линукса, в WSL это проблематично. В целом WSL удобна в том плане, что у тебя винда и линукс в одном флаконе, практически "бесшовно". Да, есть еще некоторые вопросы с интеграцией, но это мелочи. Очень не плохо микрософту удалась интеграция VSCODE + WSl. Да и GUIевые линуксовые приложения теперь запускаются в винде почти как родные.
    На линуксе - VirtualBox.
    В принципе VirtualBox хватает, виртуалками, кстати, можно управлять из питона - в установочный пакет входят модули для питона. Бывает полезно.
    Написано
  • Как из одного приложения запустить другое?

    @res2001
    Only4You, Вот сейчас нагуглилась инструкция от микрософт по настройке удаленного WMI подключения:
    https://learn.microsoft.com/ru-ru/windows/win32/wm...
    Раньше ее как-то не находил, но были и инструкции от других авторов. Я ж писал выше, что требуется дополнительная настройка, не только вопрос с UAC.
    По ссылке самое основное - это настройка фаервола. Вроде бы хватало только открытие 135 порта тем или иным способом. По моему psexec использует тот же механизм для удаленного запуска, что и wmi/wmic и видимо schtasks то же.
    Пункт про CIMOM я вообще первый раз вижу.

    Вот еще не плохая инструкция по psexec: https://hackware.ru/?p=11638

    В общем эти инструменты работающие, надо только немного приложить голову и руки для настройки окружения.
    Написано
  • Как из одного приложения запустить другое?

    @res2001
    Only4You, Кстати, пришла в голову мысль. Можно на клиенте скриптом определять состояние клиентского соединения, например анализировать вывод netstat, если соединение не в состоянии ESTABLISHED, то перезагружаем приложение. Т.е. процесс вообще на автомате, без участия сервера.
    Можно реализовать простым батником, запихать его в шедулер на срабатывание раз в минуту например.
    Написано
  • Как из одного приложения запустить другое?

    @res2001
    Only4You, psexec/wmi (и видимо schtasks то же, не проверял) обычно требуют некоторой настройки на всех удаленных компах, к которым планируется подключение. Я на вскидку не скажу, что там надо делать, погуглите (если возникают ошибки при подключении то можно гуглить по тексту ошибки). По крайней мере в одноранговой сети (без АД) у меня никогда это не работало из коробки, но после небольших настроек работает хорошо.
    Кроме того UAC на удаленных портах блокирует сетевое подключение с админскими правами, т.к. требует повышение привилегий, а это в удаленном случае сделать не возможно. Надо отключить на удаленных компах это поведение (не сам UAC, а только его действие при удаленном подключении), это делается 1 параметром реестра (гуглите параметр LocalAccountTokenFilterPolicy). Если же развернута АД, то по идее оно и так должно работать если подключаетесь с учетной записью доменного админа.

    На мой взгляд вышеперчисленная возня с настройками - это гораздо проще, чем писать и поддерживать самопальное клиент/серверное приложение.
    Написано
  • Отображение русский текст в консоли?

    @res2001
    bit8,
    осталось понять как зафиксировать

    У вас почему то по умолчанию используется не 866 кодировка. Возможно стоит с этим разобраться.
    Но если не хотите, то напишите батник, где первой командой будет chcp, а потом уже quser и запускайте его.

    Кстати, обычно стандартные микросовтовские утилиты командной строки корректно работают с кодировками консоли, тот же dir прекрасно выводит русский текст и в 866 и в 1251. Но в quser решили не заморачиваться видимо.
    Написано
  • Отображение русский текст в консоли?

    @res2001
    Кодировка в cmd меняется с помощью команды chcp.
    Судя по вашему примеру команда выводит у вас не в UTF8. Видимо в CP1251. В cmd по умолчанию используется кодировка CP866.
    Изменить на CP1251 можно командой:
    chcp 1251
    Написано
  • Как вывести названия файлов списком?

    @res2001
    Одно но! Если файлов будет достаточно много, то размер получившейся итоговой команды:
    echo !line! >> spisok.txt
    вылезет за максимально возможный размер и будет ошибка переполнение буфера или что-то в этом роде, в общем команда не отработает. На сколько помню в cmd максимальный размер команды 4 Кб.

    Можно воспользоваться конструкцией для блокировки перевода строки в echo и выводить каждый файл отдельно. Пример подхода описан тут: https://stackoverflow.com/questions/7105433/window...

    Другой вариант, более простой, - сформировать файл со списком с помощью dir, а затем в этом файле заменить переводы строк символом разделителем. В винде нет стандартных утилит, которые позволяют это сделать. Но в линуксовом наборе стандартных утилит ком.строки инструментов хватает. Замену можно произвести например с помощью утилиты sed или проще tr. Типичный пример применения tr - это замена виндового варанта CRLF на никсовый LF, погуглите. Линуксовые утилиты сейчас есть много где. Как мне кажется самый простой вариант - установить msys2 там в комплекте уже все есть, если добавить в PATH путь к каталогам bin msys2, то все утилиты можно будет вызывать непосредственно из cmd.
    msys2 - это bash shell с набором стандартных утилит и пакетным менеджером. С помощью пакетного менеджера можно поставить из репозиториев очень много разного софта, который используется в основном в Linux. Основное предназначение - это сборка софта предназначенного для Linux под винду с помощью портированного компилятора. Компилятор там то же не один, а несколько вариантов, например mingw, clang.
    Написано
  • Надо ли выгружать файл базы данных на гитхаб?

    @res2001
    Обычно как часть проекта делают некий скрипт(ы) для создания пустой базы данных и их уже можно хранить в гите. В процедуру установки/настройки приложения надо включить описание создания базы данных с помощью скриптов.
    Как вариант - встроить функционал по созданию пустой БД в приложение.
    Написано
  • Как можно ограничить скорость интернета для каждого клиента отдельно в openvpn?

    @res2001
    К OpenVPN это не имеет отношения. Это делается через Queueing Disciplines, которые реализованы в ядре ОС.
    Почитайте про Traffic Control в линуксе.
    LARTC например: https://lartc.org/howto/
    Документ есть на русском. Не смотрите, что документ старый, там все актуально, разве что типов дисциплин стало больше, чем описывается. Но тут уже можно будет маны подключить, если интересно.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    а в чём преимущество

    Преимущество в том, что файл с диском всегда лежит в каталоге с ВМ, никаких дополнительных действий делать не нужно. Но они понадобятся уже на новом хосте - надо создать новую виртуалку.
    Это может быть полезно, если у вас упал сам хост и надо восстановить виртуалку с диска - просто вытаскиваете файл и цепляете его к новой виртуалке.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    Или тут подводные камни?

    Этим я хотел показать, что конфигурация в случае типовой настройки ВМ вообще мало значима, подойдет почти любая другая типовая конфигурация. Достаточно только перенести файл вирт.диска.

    Подводные камни из того что сейчас в голову пришло:
    1. Можно выбрать EFI, если в старой конфигурации этого нет, а в новой есть то ВМ не поднимется.
    2. Возможно еще без TPM 2.0 Вин11 в ВМ не поднимется.

    Так то физический диск с виндой можно легко переставить на другой комп с другой конфигурацией и то же должен подняться если новая конфигурация соответствует общим требованиям Вин11. С линуксом примерно так же.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345, Дополнения, это драйвера для виртуальных устройств, тот функционал что ты перечислил - это лишь дополнительные плюшки, которые становятся возможны, когда работают правильные драйвера. Дополнения ставь всегда, если это возможно.
    Ограничений не накладывает. Разве что, на новом месте у тебя будет более свежая версия VB и он захочет их обновить.
    А мне казалось, что проще засунуть вообще всю виртуальную в ova (не только диск) и потом восстанавливать бэкап оттуда, особенно для новичков и особенно когда это надо делать пару раз в неделю.

    Я не настаиваю :-) Это для общего развития.
    Написано
  • Подключение/отключение устройств при импорте/экспорте виртуальных машин Virtualbox?

    @res2001
    tests12345,
    Кстати, хороший вопрос.

    Если бы ты пробрасывал в виртуальную машину реальные устройства, то ты бы это знал, т.к. это отдельный процесс, в типичную конфигурацию по умолчанию, где задаешь только количество процов, размер ОЗУ и диска это не входит.
    Так что по умолчанию устройства виртуальные.
    В такой конфигурации вообще можно перетащить только файл жесткого диска на новый комп и создать виртуалку с нуля с такой же или немного другой конфигурацией, но диск не создавать новый, а подключить старый файл, который перенес. И все должно заработать.
    ОЗУ и процессор, кстати, в виртуалке вполне реальные используются. Но все остальное - эмулируется. Правда реальное ОЗУ, как известно, давно уже виртуальное даже в хостовой системе.
    Написано
  • Где можно скачать Qt 5.5.1 под Ubuntu?

    @res2001
    Артем,
    А тута

    Подобная возможность есть обычно в любых системах сборки. Просто указываешь какой компилятор использовать. Правда обычно задают префикс компилятора (в твоем примере arm-linux-gnueabihf-) а остальное подставляется системой сборки.
    К компилятору еще нужны заголовки ядра линукс правильной версии, используемый в целевой системе libc. Это такие основные моменты. Но обычно это уже есть в составе компилятора собранного под целевую платформу.
    Написано