2012-11-20 2 views
0

사용자에게 Windows 서식있는 텍스트 상자 양식을 사용하여 정보를 입력하고 각 정보를 다른 줄에 입력 한 다음 스크립트에 추가하는 스크립트가 있습니다 정보를 텍스트 파일로 보내지 만 새로운 줄을 사용하여 정보를 분리하려고합니다. 아래 코드는 내가 사용하고있는 코드이다. 현재는 공백이나 줄이없는 한 부분의 텍스트 정보를 추가한다. 도움을 주시면 감사하겠습니다.텍스트 파일로 출력 할 때 새 줄의 내용 설정

cls 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 

$objForm = New-Object System.Windows.Forms.Form 
$objForm.Text = "Till's to Update" 
$objForm.Size = New-Object System.Drawing.Size(300,550) 
$objForm.StartPosition = "CenterScreen" 



$OKButton = New-Object System.Windows.Forms.Button 
$OKButton.Location = New-Object System.Drawing.Size(75,480) 
$OKButton.Size = New-Object System.Drawing.Size(75,23) 
$OKButton.Text = "OK" 
$OKButton.Add_Click({$x=$RichTextBox.Text;$objForm.Close()}) 
$objForm.Controls.Add($OKButton) 

$CancelButton = New-Object System.Windows.Forms.Button 
$CancelButton.Location = New-Object System.Drawing.Size(150,480) 
$CancelButton.Size = New-Object System.Drawing.Size(75,23) 
$CancelButton.Text = "Cancel" 
$CancelButton.Add_Click({$objForm.Close()}) 
$objForm.Controls.Add($CancelButton) 

$objLabel = New-Object System.Windows.Forms.Label 
$objLabel.Location = New-Object System.Drawing.Size(10,20) 
$objLabel.Size = New-Object System.Drawing.Size(280,20) 
$objLabel.Text = "Please enter information:" 
$objForm.Controls.Add($objLabel) 

$RichTextBox = New-Object System.Windows.Forms.richtextbox 
$RichTextBox.Location = New-Object System.Drawing.Size(10,80) 
$RichTextBox.Size = New-Object System.Drawing.Size(260,320) 
$objForm.Controls.Add($RichTextBox) 


$objForm.Topmost = $True 

$objForm.Add_Shown({$objForm.Activate()}) 
[void] $objForm.ShowDialog() 

$x 


Set-Content -Value `n$x`n -Path c:\Computers.txt 

답변

1

분할 파일에 n 개의 파이프를`으로 텍스트입니다. 스크립트의 마지막 두 줄은 제거 할 수 있습니다.

$OKButton.Add_Click({ 
    $RichTextBox.Text -split "`n" | Set-Content -Path c:\Computers.txt 
    $objForm.Close() 
}) 
0

RichTextBox는 RTF 형식의 텍스트를 제공하려고합니다. 당신이 텍스트를 요구할 때, 나는 포맷팅 코드를 떼어 내고 문자와 공백만을 제공한다고 생각합니다. 나는 그것을 경량의 ascii formating 것으로 변환시키지 않는다고 생각합니다.

루프를 통해 파일에 쓸 수있는 문자열 []을 반환하는 .Lines 속성을 사용할 수 있습니다.

심판 : http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.lines.aspx

1

변경이 라인

set-content -Value ($RichTextBox.text -split "`n") -Path c:\Computers.txt 

또는

set-content -Value $RichTextBox.Lines -Path c:\Computers.txt 
+0

당신은 전설이다와

$x Set-Content -Value 'n$x'n -Path c:\Computers.txt 

, 나는 그것을 해결하려고 노력 내 자신 미치게되었다. 고마워 친구 – Kam0106

관련 문제