消除文本文件中的空白行的命令更改特殊字符

消除文本文件中的空白行的命令更改特殊字符

该命令可以正确地消除空白行,但它会改变文本文件中的特殊字符。

命令:

$linblk = [System.IO.File]::ReadAllText("C:\Users\$env:username\Desktop\Logs_LUFS\Lista de Seleção.txt");$linblk = $linblk.Trim();[System.IO.File]::WriteAllText("C:\Users\$env:username\Desktop\Logs_LUFS\Lista de Seleção.txt", $linblk)

结果:
在此处输入图片描述

测试:

$linblk = [System.IO.File]::ReadAllText("C:\Users\$env:username\Desktop\Logs_LUFS\Lista de Seleção.txt");$linblk = $linblk.Trim();[System.IO.File]::WriteAllText("C:\Users\$env:username\Desktop\Logs_LUFS\Lista de Seleção.txt", $linblk)

Add-Content "C:\Users\$env:username\Desktop\Logs_LUFS\Lista de Seleção.txt" "`n`nTotal de Músicas a serem Normalizadas:$tot" -Encoding utf8

在文本文件中添加一行包含歌曲总数的内容并使用该-Encoding utf8命令后,特殊字符就被正确记录在歌曲名称中。

是否有一个选项可以使用命令 [System.IO.File]::ReadAllText,along with -Encoding utf8这样我就不需要使用 Add-Contente 命令了?

答案1

它的工作原理如下:

$fileSelect 文件是从 $files 生成的。我使用命令清除了 $files 文件中的空白行,然后再生成 $fileSelect 文件。这样 $files 文件中的特殊字符就保持正确,因此生成的 $fileSelect 文件带有正确的歌曲名称。

$files = "C:\Users\$env:username\Desktop\Logs_LUFS\Lista das Múscias a serem Normalizadas.txt"
$fileSelect = "C:\Users\$env:username\Desktop\Logs_LUFS\Lista de Seleção.txt"

$results | Where-Object {($_.LUFS -lt $vLUFpsLess) -or ($_.LUFS -gt $vLUFpsGreat) } | Out-File $files

$linblk = [System.IO.File]::ReadAllText("C:\Users\$env:username\Desktop\Logs_LUFS\Lista das Múscias a serem Normalizadas.txt");$linblk = $linblk.Trim();[System.IO.File]::WriteAllText("C:\Users\$env:username\Desktop\Logs_LUFS\Lista das Múscias a serem Normalizadas.txt", $linblk)

Set-Content $fileSelect -Value (Get-Content $files)

相关内容