Get-Content $user| Foreach-Object{
$user = $_.Split('=')
New-Variable -Name $user[0] -Value $user[1]}
我试图处理一个脚本,并让它将一个文本文件拆分成一个数组,根据每个新行将文件拆分
我应该把"=“号改为什么?
发布于 2016-08-30 22:38:26
这取决于文本文件的确切编码,但是[Environment]::NewLine
通常能做到这一点。
"This is `r`na string.".Split([Environment]::NewLine)
输出:
这是 一根绳子。
发布于 2018-05-18 16:38:35
String.Split
方法的问题是它在给定字符串中的每个字符上拆分。因此,如果文本文件有CRLF行分隔符,则会得到空元素。
更好的解决方案,使用运算符。
"This is `r`na string." -Split "`r`n" #[Environment]::NewLine, if you prefer
发布于 2018-10-19 15:57:14
您可以使用String.Split
方法在CRLF
上拆分,而不用使用分裂(String[],StringSplitOptions)方法重载来结束空元素。
有几种不同的方法可以使用这种方法来实现。
备选案文1
$input.Split([string[]]"`r`n", [StringSplitOptions]::None)
这将在由CRLF
表示的合并的`r`n
(传输返回和线路馈送)字符串上拆分。[StringSplitOptions]::None
选项将允许Split
方法返回数组中的空元素,但是如果所有行都以CRLF
结尾,则不应该有任何行。
选项2
$input.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries)
这将在上分裂,或者在上,或者在载波返回上,或者在Line上。因此,数组将以带有实际字符串的空元素结束。[StringSplitOptions]::RemoveEmptyEntries
选项指示Split
方法不包含空元素。
https://stackoverflow.com/questions/39252620
复制相似问题