如何在不大幅增加其大小的情况下在 PowerShell 中保存文本文件?
Posted
技术标签:
【中文标题】如何在不大幅增加其大小的情况下在 PowerShell 中保存文本文件?【英文标题】:How do I save a text file in PowerShell without drastically increasing its size? 【发布时间】:2021-03-09 20:55:29 【问题描述】:我有一个 PowerShell 脚本,可以将文本添加到行中,或者在文件为空白时创建行,但是它会使文件无效(应该是一个简单的文本文件,但具有自定义扩展名“.env”) 我的代码如下所示:
$menvs = @()
$paths = @()
Get-ChildItem -Path c:\Users\$env:UserName\Documents\maya\ -filter Maya.env -Recurse | %
$menvs = $menvs + $_.FullName
Foreach($fl in $menvs)
if ((Get-Content $fl) -eq $null)
$paths = @("MAYA_SCRIPT_PATH = P:/InProd/tools/maya/mel;P:/InProd/tools/maya/mel/nativeMaya",
"XBMLANGPATH = P:/InProd/tools/maya/icons",
"MAYA_PLUG_IN_PATH = P:/InProd/tools/maya/plugins",
"PYTHONPATH = P:/InProd/tools/maya/python")
else
$paths = Get-Content $fl
for ($i = 0; $i -lt $paths.Length; $i++)
if ($paths[$i] -match "MAYA_SCRIPT_PATH")
$paths[$i] = $paths[$i] +";P:/InProd/tools/maya/mel;P:/InProd/tools/maya/mel/nativeMaya"
if ($paths[$i] -match "XBMLANGPATH")
$paths[$i] = $paths[$i] +";P:/InProd/tools/maya/icons"
if ($paths[$i] -match "MAYA_PLUG_IN_PATH")
$paths[$i] = $paths[$i] +";P:/InProd/tools/maya/plugins"
if ($paths[$i] -match "PYTHONPATH")
$paths[$i] = $paths[$i] +";P:/InProd/tools/maya/python"
if($paths)
$paths | Out-File $fl
"paths updated in $fl"
它可以很好地写入输入,我可以在任何文本编辑器中读取它,但我注意到文件大小比我刚刚通过文本编辑器手动输入信息大 4*,也是这个文件的应用程序不再读取它,它识别出文件在那里,但不再尝试读取它。 我错过了什么吗?除了 Out-File 之外,我还需要确保它是一个基本的文本文件吗?
【问题讨论】:
【参考方案1】:我建议您始终像这样重写您的文件:
$Content =@"
MAYA_SCRIPT_PATH =P:/InProd/tools/maya/mel;P:/InProd/tools/maya/mel/nativeMaya
XBMLANGPATH = P:/InProd/tools/maya/icons
MAYA_PLUG_IN_PATH = P:/InProd/tools/maya/plugins
PYTHONPATH = P:/InProd/tools/maya/python
"@
Get-ChildItem -Path "c:\Users\$env:UserName\Documents\maya\" -file -filter Maya.env -Recurse | %
Set-Content -Path $_.FullName -Value $Content -Encoding Default
"paths updated in " + $_.FullName
【讨论】:
这很优雅,我必须记住,如果已经设置了某些内容,则不要覆盖已经存在的内容,只需追加(另外我是 PowerShell 的菜鸟)。【参考方案2】:啊,我找到了答案here
需要我的Out-File
行上的-Encoding Default
标志。
唷。
【讨论】:
以上是关于如何在不大幅增加其大小的情况下在 PowerShell 中保存文本文件?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不使用css调整第一个图像大小的情况下在Wordpress页面上调整第二个图像的大小?