小编Ser*_*gei的帖子

多个powershell开关参数 - 可以优化吗?

我正在尝试编写一个简单的包装器,它接受一个输出参数.这就是它现在的样子

function Get-data{
param (
    [switch]$network,
    [switch]$profile,
    [switch]$server,
    [switch]$devicebay
 )

    if ($network.IsPresent) { $item = "network"}
    elseif ($profile.IsPresent) {$item = "profile"}
    elseif ($server.IsPresent) {$item = "server"}
    elseif ($devicebay.IsPresent){$item = "devicebay"}

    $command = "show $item -output=script2"
}
Run Code Online (Sandbox Code Playgroud)

显然,这可能是优化的,但我正在努力解决我如何实现它.是否有一些简单的方法来确保只接受和使用单个参数而不诉诸多个elseif语句?
另外,我想提供一系列参数,而不是像现在这样做.

parameters powershell switch-statement

5
推荐指数
3
解决办法
2万
查看次数

Powershell - 将文本字段转换为对象

我试图找到一种优雅的方式将下面的数据转换为Powershell对象的集合,但不幸的是我无法找到一种简单的方法.有人能帮助我吗?

名称:ENC1
IPv4地址:172.16.2.101
链接设置:强制,100 Mbit,全双工
名称:ENC2
IPv4地址:172.16.2.103
链接设置:强制,100 Mbit,全双工
名称:ENC3
IPv4地址:172.16.2.103
链接设置:强制,100 Mbps,全双工
名称:ENC4
IPv4地址:172.16.2.104
链接设置:强制,100 Mbps,全双工

这就是我提出的.

$ out = @()
$ text = Get-Content input.txt
$ count = 0
do {
$ line =($ text | select -Skip $ count -first 3)
$ obj =""| 选择名称,IP,设置
$ obj.Name = $ line [0] .split(":")[1]
$ obj.IP = $ line [1] .split(":")[1]
$ obj.Settings = $ line [2] .split(":")[1]
$ out + = $ obj
$ count = $ count …

powershell text object

3
推荐指数
1
解决办法
1922
查看次数

TFS 2017 - 如何在发布的测试失败时构建失败

我使用 CI/CD 演示在 TFS 2017 中有一个简单的构建过程,如https://msdn.microsoft.com/en-us/powershell/dsc/dsccicd 中所述

Build 定义包含四个步骤:

  • 运行 PowerShell 脚本。作为脚本的一部分,Pester 测试在代理上运行,结果使用 NUnit 格式保存到一个文件夹中
  • 使用该文件夹发布测试结果
  • 将文件复制到暂存目录
  • 发布工件

当 Pester 测试失败时,我希望整个构建失败。目前,即使已发布的测试结果显示为失败,构建仍会成功(在构建详细信息的问题部分)。我看不到如何强制整个构建失败查看构建定义参数。

powershell tfs continuous-integration build

3
推荐指数
1
解决办法
1797
查看次数