当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 周五乐趣:使用 PowerShell 跨越边界

作者:精品下载站 日期:2024-12-14 07:51:06 浏览:14 分类:玩电脑

周五乐趣:使用 PowerShell 跨越边界


今天的星期五有趣的帖子,就像大多数帖子一样,有点愚蠢,也有点教育意义。因为我显然在避免完成任何实际工作,所以我做了一个小项目,该项目将在文本字符串周围添加边框。我经常在屏幕上写入格式化文本来显示信息,并且认为能够添加边框有时会很好。

我的目标是获取像“Friday Fun”这样的字符串,并将其写入控制台中心的边框框中 - 如下所示:

**************
* Friday Fun *
**************

我必须获取字符串的长度并向其添加 2 以允许两侧都有空格。顶行和底行就像写字符乘以长度一样简单。

"*"*20

中间部分只是连接字符和文本的问题。

$body = "$Character $text $Character"

然后我使用此处的字符串来创建最终结果。

#define a here string with the final result
$out = @"
$tabs$line
$tabs$body
$tabs$line
"@

是的,我添加了一个功能,可以将结果制表符或缩进一定次数。您可以在 Github gist 中找到完整的功能。

https://gist.github.com/jdhitsolutions/0bbd6b64c107d7da23e65359c4d0e25c

以下是该函数实际运行的一些示例。

[玩转系统] 周五乐趣:使用 PowerShell 跨越边界

您可以为任何单行文本添加边框。例如,我有一个简短的函数来获取一些基本的系统信息。

Function Get-Status {
    [cmdletbinding()]
    Param(
        [string]$Computername = $env:computername,
        [switch]$AsString
        )
    $OS = Get-Ciminstance -ClassName Win32_OperatingSystem -ComputerName $computername
    $uptime = (Get-Date) - $OS.lastBootUpTime
    $pctFreeMem = ($os.FreePhysicalMemory / $os.TotalVisibleMemorySize)*100
    $CDrive = Get-CimInstance -ClassName Win32_LogicalDisk -Filter "deviceid='c:'" -ComputerName $computername
    $pctFreeC = ($CDrive.FreeSpace/$CDrive.size)*100
    $status = [PSCustomObject]@{
        Computername = $OS.pscomputername
        Uptime = $uptime
        PctFreeC = [math]::Round($pctFreeC,2)
        PctFreeMem = [math]::Round($pctFreeMem,2)
    }
    if ($AsString) {
        "{0} Uptime:{1} %FreeC:{2} %FreeMem:{3}" -f $status.computername,$status.uptime,$status.PctFreeC,$status.PctFreeMem 
    }
    else {
        $status
    }
}

我包含一个参数来将结果写入格式化字符串。我现在可以在我的 PowerShell 配置文件脚本中添加这样一行:

. C:\scripts\GetStat.ps1
. C:\scripts\Add-Border.ps1

cls
write-host "`n"
get-status -AsString | add-border | write-host -ForegroundColor Green
write-host "Time to get to work, Jeff." -ForegroundColor yellow
write-host "`n"
cd c:\

[玩转系统] 周五乐趣:使用 PowerShell 跨越边界

也许您可以想到其他有趣的方法来向脚本或命令输出添加边框。如果是这样,我很想听听。享受!

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯