2013-09-27 177 views
-2

我收到的錯誤是以下內容PowerShell功能問題

在語句塊中缺少關閉'}'。

我正在使用它來自動將用戶添加到一個.dat文件,該文件對於我們的系統中有數百個用戶。我的任務就是把這個部分放在一邊,我不喜歡手動做任何事情。所以我寫了一個腳本來爲我做95%的腳本,它消除了用戶的錯誤。但是我在這裏嘗試的這個函數將用戶添加到了兩個不同的特定位置,以保持它的漂亮和純淨。我仍然在學習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 = "/[email protected] %*" 


$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 
} 
+3

最後添加''' –

回答

3

錯誤說明了這一切。您最後錯過了}以關閉該功能。

提示是將腳本放入編輯器(如記事本++)中,可以處理{}匹配,並且很容易看到您是否錯過了{/}

2

錯誤說明了一切。你是在最後缺少一個「}」關閉的foreach塊..

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 = "/[email protected] %*" 


    $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 
} 
+0

Thx給所有人,它允許函數正常工作,現在只是不按我希望的方式工作。 – Dex

0

在PowerShell ISE中可以突出一個「}」。然後它會突出顯示與它形成代碼塊的括號。突出顯示它,然後右鍵單擊它。使它更容易找到你的問題。