我有一个脚本要求用户使用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
答案 0 :(得分:1)
用`n拆分文本并将其传递给文件。您可以删除脚本中的最后两行。
$OKButton.Add_Click({
$RichTextBox.Text -split "`n" | Set-Content -Path c:\Computers.txt
$objForm.Close()
})
答案 1 :(得分:1)
更改这些行
$x
Set-Content -Value `n$x`n -Path c:\Computers.txt
与
set-content -Value ($RichTextBox.text -split "`n" ) -Path c:\Computers.txt
或
set-content -Value $RichTextBox.Lines -Path c:\Computers.txt
答案 2 :(得分:0)
RichTextBox希望为您提供RTF格式化文本。当你要求Text时,我认为它会剥离格式化代码,只给你字母和空格,我认为它不会把它变成一个轻量级的ascii格式化的东西。
您可能希望使用.Lines属性,该属性返回一个字符串[],您可以循环并写入该文件。
参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.textboxbase.lines.aspx