LINUX.ORG.RU
ФорумTalks

Откуда такой поток элементарных вопросов?

 ,


0

1

Весь Development/Desktop забит элементарными вопросами типа «я программист, как учить си» или «я админ, что такой dmesg?». Сессии должны быть уже сданы, у школьников каникулы, так откуда вдруг нахлынувший поток настолько низкоквалифицированных вопросов?

Про админство кто-то предлагал вариант что из-за политики Минцифры по поводу регистрации ПО (то, что оно теперь должно работать на ру-ОСях типа Астры) появились элементарные вопросы по Linux. А программирование тогда откуда?

★★★★★
Ответ на: комментарий от Forum0888

Вот у меня сейчас возникла задача сделать небольшой апдейтер файлов подвинду. Он должен закачивать файлы в каталог, в котором находится. И должен быть выбор какие файлы закачивать. А виндой я не пользовался с 2006 года. И я в принципе в замешательстве что сейчас для этого проще использовать. Ты представляешь что я могу нагуглить сейчас по этому поводу? А у кого спрашивать, у меня даже идей нету.

И самое интересное - как собрать под винду, если использовать си++, например. Виртуалку чтоли заюзать.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Поиск «windows PowerShell»

Например:

https://habr.com/ru/companies/ruvds/articles/490924/ Что такое Windows PowerShell и с чем его едят? Часть 2: введение в язык программирования

PowerShell имеет доступ к всем объектам .Net - это ОКЕАН API.
Заодно с .Net начнёте знакомиться.

Forum0888
()
Ответ на: комментарий от Forum0888

Думаешь проще скриптом? Про павершелл я слышал лет 10 назад… Тогда понадобится утилита для скачивания. Вгет, чтоли заюзать. Блин, хотелось одним файлом сделать все.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Поиск «windows PowerShell»

Например:

https://habr.com/ru/companies/ruvds/articles/490924/ Что такое Windows PowerShell и с чем его едят? Часть 2: введение в язык программирования

PowerShell имеет доступ к всем объектам .Net - это ОКЕАН API.
Заодно с .Net начнёте знакомиться.

Задачу конечно несложно реализовать на C++ с использованием WIN API, но времени займёт много, так как придётся C++ изучить.

Скриптовый ЯП можно любой взять (тот же Python).

Наверное вам Python пока больше подойдёт.

Forum0888
()
Последнее исправление: Forum0888 (всего исправлений: 1)
Ответ на: комментарий от Forum0888

Читаю уже. Проблема в том, что мне тестировать негде. Чтобы использовать питон, его пользователю придется устанавливать, а это уже лишнее. Нужно максимально просто.

А, ну там же все проще. Не нужен питон, все встроено в него:

$download_url = "http://download_ahyware/file1.zip"
$local_path = "C:\Downloads\file1.zip" 
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($download_url, $local_path)

Скачка, работа с файлами. Спасибо.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 3)
Ответ на: комментарий от LightDiver

Чтобы использовать питон, его пользователю придется устанавливать, а это уже лишнее. Нужно максимально просто.

Научитесь инстальник делать, который при необходимости Python установит.
В Windows он просто устанавливается (не забудьте в environmet в переменную Patch добавить путь к директории в которой Python находится).

Forum0888
()
Ответ на: комментарий от Forum0888

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

LightDiver ★★★★★
()
Ответ на: комментарий от Forum0888

Ну, у меня цензурных пока выражений нету. Я ссылку за ссылкой перебираю уже третью страницу в гугле в попытках понять как сохранить файл в текущий каталог. Нашел 100500 вариантов как узнать текущий каталог, но не как это использовать.

Вот - это то, о чем я говорил. Можно часами гуглить простейшее. Банальщину. А когда пользователь устает гуглить, он тупо забивает, ибо нет прогресса. И так постоянно. На форумах же ему коллективное сознание сразу может сказать что и как. Ну, или не может. Форумы они с характером.

LightDiver ★★★★★
()
Ответ на: комментарий от vvn_black
$url = "https://github.com/Vladgobelen/NSQC/archive/refs/heads/main.zip"
$filePath = Join-Path -Path $PWD -ChildPath "main.zip"
Invoke-WebRequest -Uri $url -OutFile $filePath

Сделал так. По идее должно работать. Тестер вернется, попробуем. Спасибо. Но это о чем я и говорил - форум всегда в самом начале пути и даже в простейшем подскажет лучше любого гуглинга, где свалка.

p.s.

Ладно. Это не работает.

Впрочем, как и это:

$download_url = "https://github.com/Vladgobelen/NSQC/archive/refs/heads/main.zip"
$filePath = Join-Path -Path $PWD -ChildPath "main.zip"
$WebClient = New-Object System.Net.WebClient
$WebClient.DownloadFile($download_url, $filePath)

Заметь - я не совсем нуб. Я в принципе суть процессов понимаю. Я писал скрипты под линукс многие годы. Я понимаю принципы работ осей кое как. И у меня за все эти попытки с гуглением и твоим примером ничего не вышло. А теперь представь себе нуба, не связанного с этим. И вдруг ему нужно что то сделать. Как ты думаешь, он правда сможет адекватно нагуглить решение? Очень интересный эксперимент в тему вышел.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

https://learn.microsoft.com/en-us/powershell/

https://learn.microsoft.com/en-us/powershell/scripting/samples/sample-scripts...

Много примеров скриптов.
На каждой странице есть кнопка Download PDF.
Обычно содержит содержимое всех страниц в формате PDF.

102 репозитория https://github.com/orgs/PowerShell/repositories

Имеются в частности и hub с ссылками на полезные ресурсы.
Попробуйте искать подобно «powershell $contents».
Сразу получите url https://learn.microsoft.com/ru-ru/powershell/module/microsoft.powershell.mana... с мануал по

https://learn.microsoft.com/ru-ru/powershell/module/microsoft.powershell.mana... copy-item (в частности копирование файлов).

Лучше в поиске указывать название функций, типа «powershell copy-item».
Сразу получите много url c примерами копирования файлов.
Например: https://adamtheautomator.com/copy-item/

Forum0888
()
Ответ на: комментарий от Forum0888

Да, я видел эти ссылки.. Часик полистал и пока забил.

До копирования я еще доберусь. А пока поищу способ просто скачать файл без лишних шевелений. Пока рабочего способа не вижу.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

«powershell копирование файлов»

Copy-Item копирование файлов и папок из PowerShell https://winitpro.ru/index.php/2020/04/27/powershell-copy-item-kopirovanie/

Несколько полезных скриптов с Copy-Item
Скопировать только файлы:

Get-ChildItem "C:\SourceFolder" -File -Recurse | Copy-Item -Destination "F:\DestFolder"

Скопировать структуру папок, без файлов:

$path = Get-ChildItem "C:\SourceFolder" -Recurse | ?{$_.PsIsContainer -eq $true}
$dest = "F:\DestFolder\"
$parent = $path[0].Parent.Name
$path | foreach {
$_.FullName -match "$parent.+"
New-Item -ItemType directory ($dest + $Matches[0])
}
Forum0888
()
Ответ на: комментарий от Forum0888

Я когда найду, расскажу тебе как нашел и сколько это заняло. И посмотрим результат. То что ты написал, я уже читал. Однообразные команды и все не те, что я ищу. Ну, точнее то, но это нерабочие варианты в целом.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)

Проблема в том, что когда человек сталкивается с проблемой, он забывает задать себе самый важный вопрос — как это можно сделать проще. Вроде бы я сказал банальность, но на самом деле нет. Нужна специальная тренировка и дисциплина, чтобы вовремя задать себе этот вопрос.

Да, специалист может сказать, что нуб, задающий себе этот вопрос, скорее всего решит проблему не самым оптимальным или изящным способом, но на это мы имеем аргумент. А что важнее — решение или мнение абстрактного специалиста?!

papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

Нуб для начала не знает как сделать проще. И даже если будет искать, будет искать тот вариант, который знает.

LightDiver ★★★★★
()
Ответ на: комментарий от Forum0888

Я вот почти уверен, что перл в винду придется добавлять вручную. А это неприемлемо. Как и питон и луа и бла бла. Штатные способы нужны.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Golang, может? Из коробки умеет собирать статические бинарники, штатным тулчейном, под все поддерживаемые платформы.

MagicMirror ★★
()
Ответ на: комментарий от LightDiver

Не сложно использовать Windows Script Host.

«windows javascript примеры скриптов»

https://scriptcoding.ru/sintaksis-jscript/ Урок 1 по JScript — знакомство, js скрипты

Для «Windows Script Host» в inet тонны готовых скриптов.

Forum0888
()
Ответ на: комментарий от LightDiver

Нуб для начала не знает как сделать проще.

Не знает, да, но задаться вопросом обязан.

И даже если будет искать, будет искать тот вариант, который знает.

Нет, ты противоречишь. Зачем искать ответ на вопрос, ответ на который знаешь. Вопрос, о котором идёт речь — это дисциплина нахождения реальных решений в пределах конкретной реальности, реальности некоего нуба. Мы же не будем оговариваться о том, что это всё не прибито гвоздями, да?

papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

Во-первых, нельзя задумываться о том, чего не знаешь.

А то что ты можешь знать, можешь знать плохо, но примерно представлять как это работает, чтобы задавать об этом вопросы.

Вон мне выше накидали вариантов, о которых я даже не слышал. Сейчас я попробую сделать через с++ для начала, а когда обосрусь, пойду пробовать их.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Во-первых, нельзя задумываться о том, чего не знаешь.

Следуя твоей логике, погресс не возможен. Бро, задумываться как раз и надо о вещах, которые не знаешь 😉

А то что ты можешь знать, можешь знать плохо, но примерно представлять как это работает, чтобы задавать об этом вопросы.

Плохо знать не грех. Задавать вопросы надо, но не для того, чтобы получить ответ, а для того, чтобы наметить дальнейший путь.

Вон мне выше накидали вариантов, о которых я даже не слышал. Сейчас я попробую сделать через с++ для начала, а когда обосрусь, пойду пробовать их.

А потом, когда попробую их, наконец сделаю как мне надо на си++. Красавчик, нечего добавить.

papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

У меня две тыщи игроков и я сделаю так, чтобы было удобно им с минимальными телодвижениями. Ибо иначе я задолбаюсь каждому объяснять все нюансы.

И я не сноб, я никогда не скажу что мне не нравится тот же питон или ява, а что угодно. Я воспользуюсь тем инструментом что заработает и позволит выполнить задачу. Проблема лишь в том, что я нихрена не знаю.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Вот у меня сейчас возникла задача сделать небольшой апдейтер файлов подвинду. Он должен закачивать файлы в каталог, в котором находится. И должен быть выбор какие файлы закачивать. А виндой я не пользовался с 2006 года. И я в принципе в замешательстве что сейчас для этого проще использовать.

А что ты под Linux бы использовал? Может проще будет это сделать под Linux и потом подумать как под винду портировать.

Если использовать стандартные средства C/C++, то даже ничего особенно портировать не придется.

Но между прочим, задача, если не разовая, не такая простая как кажется. Нужно предусмотреть обработку различных ошибок, в том числе ситуации вида частично закаченного файла, например, если работу апдейтера прервали по какой-то причине (допустим свет выключили, ИБП нет и ребут). Ситуации, когда какой-то файл залочен виндой и др.

P.S. И под винду и под Linux я бы на C# под .NET написал. И ничего почти портировать бы не пришлось и удобно. Впрочем, если только под Linux то на Perl.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 3)
Ответ на: комментарий от praseodim

Да под линукс я бы сделал простейший баш скрипт скорее всего и все. Все нужное под рукой всегда имеется. Вгетом скачал архив - это раз. Удалил старое, распаковал и как надо переименовал новое все. В несколько строк.

А еще проще - сразу команду гита дать. Гит всегда под рукой. Это в винде его надо дополнительно ставить. Или гит команда в скрипте вообще.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Проблема лишь в том, что я нихрена не знаю.

Да ты Сократ! Я же говорю, красавчик.

papin-aziat ★★★★★
()
Ответ на: комментарий от LightDiver

Bash есть и для Windows. Как и wget. Можно попробовать в один пакет все засунуть и просто распаковывать.

praseodim ★★★★★
()
Ответ на: комментарий от LightDiver

А его не надо специально под винду собирать. Он универсальный. То есть, например, скомпилировал Mono или .Net Core и результат будет запускаться и работать и винде. Если не использовал GUI и слишком глубоко в дебри не залазил.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Эм. То есть собранный бинарник сразу должен заработать?

NSQCu: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=1b097fd4cfbaaacd5e60633bd75cbabdd900306b, stripped

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Если это бинарник .NET, а не что-то другое. Он же еще и с расширением exe получается по умолчанию.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Я создал простейший проект, скачивающий архив из интернета. Появился каталог NSQCu/bin/Debug/net7.0

Вот в нем дллка, этот бинарник и мусор побочный.. Хм.. Какой интересный инструмент, кстати. Простенький такой. Главное сейчас понять как его в винде им запустить.

LightDiver ★★★★★
()
Ответ на: комментарий от praseodim

Нет, это, судя по всему, именно линуксовый бинарник.

Если я правильно понимаю: dotnet build в каталоге проекта?

diver ~/Скрипты/NSQCu % xbuild NSQCu.csproj                        3:43:42

>>>> xbuild tool is deprecated and will be removed in future updates, use msbuild instead <<<<

XBuild Engine Version 14.0
Mono, Version 6.12.0.122
Copyright (C) 2005-2013 Various Mono authors

Build started 03.07.2023 3:45:16.
__________________________________________________
NSQCu.csproj: error : /home/diver/Скрипты/NSQCu/NSQCu.csproj: The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format.  
Build FAILED.
Errors:

NSQCu.csproj: error : /home/diver/Скрипты/NSQCu/NSQCu.csproj: The default XML namespace of the project must be the MSBuild XML namespace. If the project is authored in the MSBuild 2003 format, please add xmlns="http://schemas.microsoft.com/developer/msbuild/2003" to the <Project> element. If the project has been authored in the old 1.0 or 1.2 format, please convert it to MSBuild 2003 format.  

         0 Warning(s)
         1 Error(s)

Time Elapsed 00:00:00.0544440

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от praseodim

Не, mcs выдает ошибку. Смог через:

dotnet publish -r win-x64 --self-contained false

Но оно генерирует 100500 разных файлов. И я хз как это одним файлом сделать. Да и еще не протестрированно - запустится ли на винде.

LightDiver ★★★★★
()
Ответ на: комментарий от LightDiver

Не, mcs выдает ошибку.

Что за ошибку?

Но оно генерирует 100500 разных файлов. И я хз как это одним файлом сделать.

У тебя относительно простая программа. И даже не требует сторонние модули подключать, которых нет в стандартной поставке .NET (Я так думаю, что не потребует). Так что нафиг это все. Ставь, если не поставил Mono и компилируй просто через mcs

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от praseodim
diver ~/Скрипты/NSQCu % mcs Program.cs                       [130] 4:37:42
Program.cs(1,6): error CS1525: Unexpected symbol `(', expecting `identifier' or `static'
Program.cs(1,21): error CS1530: Keyword `new' is not allowed on namespace elements
Program.cs(1,24): error CS1525: Unexpected symbol `HttpClient', expecting `identifier' or `static'
Compilation failed: 3 error(s), 0 warnings
diver ~/Скрипты/NSQCu %          

Рабочий же вариант генерирует вот это:

file:///home/diver/Скрипты/NSQCu/bin/Debug/net7.0/win-x64/NSQCu.deps.json
file:///home/diver/Скрипты/NSQCu/bin/Debug/net7.0/win-x64/NSQCu.dll
file:///home/diver/Скрипты/NSQCu/bin/Debug/net7.0/win-x64/NSQCu.exe
file:///home/diver/Скрипты/NSQCu/bin/Debug/net7.0/win-x64/NSQCu.pdb
file:///home/diver/Скрипты/NSQCu/bin/Debug/net7.0/win-x64/NSQCu.runtimeconfig.json

А стоп. Каталог еще один есть. В нем это:

file:///home/diver/Скрипты/NSQCu/bin/Debug/net7.0/win-x64/publish/NSQCu.exe
file:///home/diver/Скрипты/NSQCu/bin/Debug/net7.0/win-x64/publish/NSQCu.pdb

Второй файл это кто?

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 2)
Ответ на: комментарий от LightDiver

Program.cs(1,6): error CS1525: Unexpected symbol `(', expecting `identifier' or `static'

Разбирайся с текстом программы. У тебя просто ошибки в коде. Как вариант, пытаешься использовать слишком новые возможности .NET. Mono, емнип остановился на версии .Net Framework 4.5 или 4.8, короче 4-й версии. Но ее тебе за глаза достаточно.

Используй WebClient вместо HttpClient

Рабочий же вариант генерирует вот это:

Нахрен там .json и прочее.

Второй файл это кто?

Символы для отладчика. Можешь без него использовать.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Ну, походу должно работать, спасибо. С первого взгляда мне нравится язык - интересное и простое.

Правда тестеры говорят что на этот файл матерятся и фаерволы и антивирусы. И запускать не хотят.. Что ж за жесть то.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Оно у тебя заработало в линуксе?

Правда тестеры говорят что на этот файл матерятся и фаерволы и антивирусы. И запускать не хотят.. Что ж за жесть то.

Ну где-то логично, особенно если исполняемые файлы обновляешь. Софт, который что-то скачивает из интернета и заменяет на диске. Без цифровых подписей.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

При сборке через dotnet build - да. А виндовые юзеры говорят, что их вариант не работает. «Папка мигает и все»:

using (var client = new HttpClient())
{
    using (var s = client.GetStreamAsync("https://github.com/Vladgobelen/NSQC/archive/refs/heads/main.zip"))
    {
        using (var fs = new FileStream("main.zip", FileMode.OpenOrCreate))
        {
            s.Result.CopyTo(fs);
        }
    }
}

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от LightDiver

Хм, это немного более новое у тебя. Написал код без HttpClient, у меня только что работает, в том числе в винде. Компилируется Mono

using System;
using System.IO;
using System.Net;

namespace gitdownload
{
   class Program
    {
      static void Main(string[] args)
      {
       string giturl=@"https://github.com/Vladgobelen/NSQC/archive/refs/heads/main.zip";
       string localfile="main.zip";
       
       using (WebClient c = new WebClient())
       {
         try
         {
           c.DownloadFile(giturl,localfile);
         } catch (Exception ex)
         {
           Console.WriteLine(ex.Message); //Write error message
           System.Environment.Exit(0);
         } 
       }
       Console.WriteLine("File {0} succesfully downloaded",giturl);
      }
    }
}

«Мигать может потому что консольная программа запускается и тут же закрывается. То есть, запускать в винде надо в командной строке или создать ярлык на запуск и там поставить галочку не закрывать его или как-то так.

Или паузу сделать в конце. Добавь Console.ReadLine - это самое простое, будет требовать нажать Enter.

Метод DownloadFile - самый простой, там есть куча разных других, более гибких.

Еще нюанс. Если нужно указывать сепаратор для каталогов, можно использовать переменную Path.DirectorySeparatorChar - будет возвращать / или \ в зависимости от Linux или Windows

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 2)
Ответ на: комментарий от praseodim

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

Это трэш какой то. Пока ни одного достоверно повторяемого случая. Я не понимаю как они этим говном пользуются. Все, в пень. Пусть вручную обновляют.

LightDiver ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)