【发布时间】:2021-08-01 08:14:31
【问题描述】:
我正在尝试开发一个 Powershell 脚本,它应该:
- 获取文件内容。
- 删除该文件的空格、换行符、制表符。
- 计算 SHA1。
这是我尝试过的代码,但无法正常工作,因为它为我提供了带有空格、换行符和制表符的文件的 SHA1:
$File = "C:\MyThirdProject\jpc_flt.txt"
$TargetFile = "C:\MyThirdProject\flttest.txt"
$lines=(Get-Content $File)
$TrimLine = foreach ($line in $lines) { $line.Trim(" `t`n`r") } ##Have tried -->$TrimLine=(Get-Content -LiteralPath $File) | foreach{ $_.Trim(" `t`n`r")} | Set-Content $TargetFile
$TrimLine | Out-File $TargetFile
Get-FileHash -Path $TargetFile -Algorithm SHA1
我愿意接受其他方法或任何其他已经执行此操作的 cmdlet。请帮忙!
【问题讨论】:
-
你可以简单地做
$newFile=(Get-Content $File -Raw) -replace '\s+' -
.Trim()方法将删除字符串开头和结尾的内容,但不会删除中间的内容。这是你的意图吗?如果您想删除所有空格,您可以按照 Santiago 的建议进行操作。 -
假设您想删除所有 extra 空格,您可以这样做
$newFile=(Get-Content $File -Raw) -replace '\s{2,}' -
请允许我给你一个标准的建议给新手:如果你accept 一个答案,你将帮助未来的读者,向他们展示解决了你的问题的方法。要接受答案,请单击答案左侧大数字下方的大 ✓ 符号(您将获得 2 点声望)。如果您至少有 15 个声望点,您还可以投票给其他有用的答案(也可以选择接受的答案)。如果您的问题尚未解决,请提供反馈,或者,如果您自己找到了解决方案,请self-answer。
标签: powershell powershell-2.0 powershell-3.0 powershell-4.0