![](/img/trans.png)
[英]How to Extract Strings from a text file and copy them to excel sheet using Powershell
[英]How do I take the first word from each line in txt file and put them into an Excel sheet using PowerShell?
我正在尝试使用PowerShell在.ctl文件的每一行中采用第一个单词,并将该单词放入Excel工作表中。
我看了这个问题, 如何使用Powershell从文本文件中提取字符串并将其复制到excel表中 ,这似乎是我需要做的,除了每个单词与其他单词无关,并且我对代码没有真正的了解。 我只是手动进行此操作,但是有数百个文件。
我找到了,但是我不确定哪个函数会选择第一个单词
$lines = Get-Content "C:\ExampleFolder\Example.txt"
foreach ($line in $lines) {
Write-Host ($line.Split(" "))[0]
}
示例行如下所示:
branch_description NULLIF branch_description=' 8]^NULL^[' "substr(:branch_description,6)",
我只需要“ branch_description”部分,其余的都可以忽略。
这将在一个文件夹中的数百个文件上执行。 我将如何循环播放?
Get-Content ".\file.txt" | %{ $_.Substring(0,$_.IndexOf(" "))} | Select-Object -First 10
除去|Select-Object -First 10
以获取文件的全部内容。
此解决方案还假定您要在空间上拆分。
如果在输出末尾添加逗号,则可以将输出另存为将在excel中打开的.csv文件。
#The default encoding for Out-File [pre v6] is 'Unicode'; in [ps6] it is 'UTF8NoBOM'. In this example I chose ASCII, though you should choose what best fits your use-case.
Get-Content ".\file.txt" | %{ $_.Substring(0,$_.IndexOf(" ")) + "," } | Out-file -Path ".\output.csv" -Encoding ASCII -Append
参考: 文件外
完整的代码可以做到:
$lines = Get-Content "C:\ExampleFolder\Example.txt"
读取文件并存储字符串数组。 文件中的每一行都是数组的一个元素
foreach ($line in $lines) {
这部分代码是循环的开始。 它遍历字符串数组,并在方括号中对数组中的每个元素执行以下代码
Write-Host ($line.Split(" "))[0]
魔术来了。 Write-Host仅用于Powershell窗口中的输出。 您必须将此命令替换为写入excel-或csv文件的内容(或将其存储在数组中以备后用)
括号中的其余命令将行(文本文件的一行)拆分为字符串数组。 它使用空格作为符号(“”)将其拆分为另一个字符串数组。 代码行([0])末尾的访问标识符需要外部括号,这意味着您只需要第一个对象。
}
闭环。
希望这可以帮助
编辑:范例代码:
Out-File -FilePath "myergfile.csv" -Encoding UTF8 -Force -InputObject "Value"
$lines = Get-Content "C:\ExampleFolder\Example.txt"
foreach ($line in $lines){
Out-File -FilePath "myergfile.csv" -Encoding UTF8 -Append -InputObject ($line.Split(" "))[0]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.