• Как в *.cmd после findstr произвести математические вычисления?

    @NortheR73
    системный инженер
    PowerShell не рассматривается как вариант?
    # объем по-модульно
    Get-WmiObject Win32_PhysicalMemory | ft BankLabel,@{Label="Capacity"; Expression={$_.Capacity / 1GB}} -a
    
    # суммарный объем RAM
    Get-WmiObject Win32_PhysicalMemory | Measure-Object -Property capacity -Sum | Foreach {"{0:N2}" -f ([math]::round(($_.Sum / 1GB),2))}
    Ответ написан
    1 комментарий
  • Как изменить вывод баш скирпта?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    если у вас там команды с многострочным выводом, по типу файлов, то для того чтобы это вывести обычно нужно пройти два этапа:
    первый, это построчное объединение файлов/переменных с нужным разделителем
    второе, это уже непосредственный отформатированный вывод по указанному выше разделителю.
    рассмотрим ваш пример с командой hostnamectl
    для построчного объединения можно использовать стандартную утилиту paste
    paste file1 file2
    где вместо файлов подставим вывод наших команд
    paste <(hostnamectl) <(hostnamectl)
    но в таком виде оно просто сольёт строки, а нам их нужно как-то различать в одной строке, если внутри вывода команд не используется символ ';' то возьмём его в качестве разделителя, то есть нам нужно в конец file1(ну или вывода команды) добавить окончание в виде точки с запятой ';'
    делается это просто с помощью того же awk
    hostnamectl |awk '{print $0";"}'
    в общем виде будет выглядеть так:
    paste <(hostnamectl |awk '{print $0";"}') <(hostnamectl)


    то есть, по сути, мы получили структурированный текстовый формат по типу CSV/TSV с разделителем в виде ';'
    а вывести подобное довольно просто, так как для этого есть много разных консольных утилит, начиная от стандартной линуксовой column
    paste <(hostnamectl |awk '{print $0";"}') <(hostnamectl) | column -t -s';'

    и заканчивая внешней утилитой csview с рамочками и блэкджеком:
    paste <(hostnamectl |awk '{print $0";"}') <(hostnamectl) | csview -H -d';'

    хотя в последнем варианте можно сократить до
    paste <(hostnamectl) <(hostnamectl) | csview -H --tsv

    так как paste добавляет еще табуляцию как разделитель
    Ответ написан
    1 комментарий
  • Как изменить фон окна в tcl/tk?

    OrlovEvgenii
    @OrlovEvgenii
    golang developer / DevOps
    Чтобы изменить фон окна в Tcl/Tk, можно использовать команду configure для установки свойства background окна на желаемый цвет. Например, чтобы установить черный фон, можно добавить следующую строку перед вызовом wm deiconify:

    configure . -background black

    Полный код с измененным фоном будет выглядеть так:

    #!/usr/bin/env tclsh
    
    package require Tcl
    package require Tk
    
    set version 1.3
    set FORWARDS {
    10170 10220
    }
    
    wm title . "Text v$version"
    wm resizable . 0 0
    wm withdraw .
    wm geometry . "700x350"
    
    # Установка черного фона
    configure . -background black
    
    wm deiconify .

    После запуска программы, вы должны увидеть, что фон окна стал черным.
    Ответ написан
    Комментировать