col*_*byt 18 powershell scripting
Get-Content $user| Foreach-Object{
$user = $_.Split('=')
New-Variable -Name $user[0] -Value $user[1]}
Run Code Online (Sandbox Code Playgroud)
我正在尝试处理脚本并将文本文件拆分为数组,根据每个新行拆分文件
我应该将"="符号更改为
Rya*_*ies 33
它取决于文本文件的确切编码,但[Environment]::NewLine通常可以解决问题.
"This is `r`na string.".Split([Environment]::NewLine)
Run Code Online (Sandbox Code Playgroud)
输出:
这是
一个字符串.
aph*_*ria 13
通过使用Split(String[], StringSplitOptions)方法重载,您可以使用该String.Split方法进行拆分,CRLF而不会以空元素结束。
有几种不同的方法可以使用这种方法来做到这一点。
$input.Split([string[]]"`r`n", [StringSplitOptions]::None)
Run Code Online (Sandbox Code Playgroud)
这将拆分由 表示的组合CRLF(回车和换行)字符串`r`n。该[StringSplitOptions]::None选项将允许该Split方法返回数组中的空元素,但如果所有行都以CRLF.
$input.Split([Environment]::NewLine, [StringSplitOptions]::RemoveEmptyEntries)
Run Code Online (Sandbox Code Playgroud)
这将分裂的任何一个回车或换行。所以数组最终会以散布着实际字符串的空元素结束。该[StringSplitOptions]::RemoveEmptyEntries选项指示该Split方法不包含空元素。
该String.Split方法的问题在于它会分割给定字符串中的每个字符。因此,如果文本文件具有CRLF行分隔符,则将获得空元素。
使用-Split运算符更好的解决方案。
"This is `r`na string." -Split "`r`n" #[Environment]::NewLine, if you prefer
Run Code Online (Sandbox Code Playgroud)
目前给出的答案仅考虑Windows作为运行环境。如果您的脚本需要在各种环境(Linux、Mac 和 Windows)中运行,请考虑使用以下代码片段:
$lines = $string.Split(
@("`r`n", "`r", "`n"),
[StringSplitOptions]::None)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
40468 次 |
| 最近记录: |