Powershell功能问题

时间:2013-09-27 12:35:38

标签: function powershell

我得到的错误是以下

在语句块中缺少关闭'}'。

我正在使用它来自动将用户添加到.dat文件中,该文件有一百个用户用于我们的系统之一。我完成了这一部分的任务,我不喜欢手动做任何事情。所以我写了一个脚本来为我做95%的它,它删除用户就好了。但是我在这里尝试的这个功能将用户添加到2个不同的特定位置,以保持它的美观和网络。我还在学习powershell,所以任何方向都会很棒,你不会伤​​害我的感情我不是专业人士,也不是新手。

Function Add{
$username = Read-Host "User to add to REP01-02 Printing"
$LOCreportADD1 = "\\rep01\E$\orant\Report60\Server\cgicmd.dat"
$LOCreportADD2 = "\\rep02\e$\orant\Report60\Server\cgicmd.dat"
$Username1 = $username+": "
$prd = "prd: "
$userid = "userid="
$henation = "/henation@rmsprd %*"


$Text1 = get-content $LOCreportADD1
$Text2 = get-content $LOCreportADD2

$NewText1 = @()
foreach ($Line in $Text1) {
    if ($Line -eq "Insert new user1") {
        $Line = $Line.Replace("Insert new user1 \", "Insert new user1 \")
        $NewText1 += $Line
        $NewText1 += $username1+$userid+$username+$henation
    }
    Elseif ($Line -eq "New User2") {
        $Line = $Line.Replace("New User2 \", "New User2 \")
        $NewText12 += $Line
        $NewText12 += $username+$prd+$userid+$username+$henation
}
$NewText1 | Set-Content $LOCreportADD1
}

4 个答案:

答案 0 :(得分:3)

错误说明了一切。您最后错过}以关闭该功能。

提示是将您的脚本放在可以处理{}匹配的编辑器(如Notepad ++)中,并且很容易看出您是否错过{ / }

答案 1 :(得分:2)

错误说明了一切。你最后错过了一个'}'来关闭foreach区块。

答案 2 :(得分:0)

Function Add{
    $username = Read-Host "User to add to REP01-02 Printing"
    $LOCreportADD1 = "\\rep01\E$\orant\Report60\Server\cgicmd.dat"
    $LOCreportADD2 = "\\rep02\e$\orant\Report60\Server\cgicmd.dat"
    $Username1 = $username+": "
    $prd = "prd: "
    $userid = "userid="
    $henation = "/henation@rmsprd %*"


    $Text1 = get-content $LOCreportADD1
    $Text2 = get-content $LOCreportADD2

    $NewText1 = @()
    foreach ($Line in $Text1) {
        if ($Line -eq "Insert new user1") {
            $Line = $Line.Replace("Insert new user1 \", "Insert new user1 \")
            $NewText1 += $Line
            $NewText1 += $username1+$userid+$username+$henation
        }
        Elseif ($Line -eq "New User2") {
            $Line = $Line.Replace("New User2 \", "New User2 \")
            $NewText12 += $Line
            $NewText12 += $username+$prd+$userid+$username+$henation

        } # <---- This is your missing brace, to close out the Else condition

    }
    $NewText1 | Set-Content $LOCreportADD1
}

答案 3 :(得分:0)

在Powershell ISE中,您可以突出显示'}'。然后它将突出显示它形成一个代码块的括号。突出显示它,然后右键单击它。使您更容易找到问题。