Encoding 使用“cat”并避免编码更改

Encoding 使用“cat”并避免编码更改,encoding,concatenation,Encoding,Concatenation,温柔一点;这是我第一次来这里,在过去9个月的工作中,我才真正学会了PS,所以我的知识有限。 你可能不得不慢慢地大声说话,就好像你是一个《每日邮报》的读者,试图在法国点烤面包上的奶酪而没有得到布里 所以,我使用cat命令连接了几个文件,所有的工作都很好,除了我的结果文件,正如您所期望的,是UCS2小端编码的 我需要UTF8,但我使用cat而不是Get内容这一事实似乎导致了一个问题。 如果我使用“获取内容并设置内容”或“获取内容并输出文件”,我的脚本不喜欢我的预期输出文件不存在这一事实。 因此,请记

温柔一点;这是我第一次来这里,在过去9个月的工作中,我才真正学会了PS,所以我的知识有限。 你可能不得不慢慢地大声说话,就好像你是一个《每日邮报》的读者,试图在法国点烤面包上的奶酪而没有得到布里

所以,我使用cat命令连接了几个文件,所有的工作都很好,除了我的结果文件,正如您所期望的,是UCS2小端编码的

我需要UTF8,但我使用cat而不是Get内容这一事实似乎导致了一个问题。 如果我使用“获取内容并设置内容”或“获取内容并输出文件”,我的脚本不喜欢我的预期输出文件不存在这一事实。 因此,请记住,我需要将原始文件保存到存档位置,我需要连接现有文件,然后清除不在存档中的原始文件,然后将生成的文件移动到另一个位置,这是可行的,但我的输出是UCS2 Little Endian:

$RenFld = $env:homedir + "\export\renewal\e-renewals"
$RenArchive = $env:homedir + "\export\renewal\e-renewals\Archive"
$RenDone = $env:homedir + "\export\renewal\e-renewals\Done"

Copy-item -path $RenFld\ren_*.dat -destination $RenArchive -force

cat -path $RenFld\ren_*pak_emlcon1.dat > $RenFld\pak_emlcon1.dat

Remove-item -path $RenFld\ren_*.dat -force

get-childItem -path $RenFld\*.dat | where {$_.length -eq 0} | remove-Item

Copy-item -path $RenFld\*.dat -destination $RenDone -force

Remove-item -path $RenFld\*.dat -force
这:

这是:

$RenFld = $env:homedir + "\export\renewal\e-renewals"
$RenArchive = $env:homedir + "\export\renewal\e-renewals\Archive"
$RenDone = $env:homedir + "\export\renewal\e-renewals\Done"

Copy-item -path $RenFld\ren_*.dat -destination $RenArchive -force

Get-Content -path $RenFld\ren_*pak_emlcon1.dat -Encoding UTF8 > Out-File $RenFld\pak_emlcon1.dat

Remove-item -path $RenFld\ren_*.dat -force

get-childItem -path $RenFld\*.dat | where {$_.length -eq 0} | remove-Item

Copy-item -path $RenFld\*.dat -destination $RenDone -force

Remove-item -path $RenFld\*.dat -force
…不行。 运行使用此PS的可执行文件时,我遇到以下错误:

-------- Error Details
Get-Content : A positional parameter cannot be found that accepts argument '$homedirexport\renewal\e-renewals\pak_emlcon1.dat'.
At $cliutl\eren_conc.ps1:13 char:12
+ Get-Content <<<<  -path $RenFld\ren_*pak_emlcon1.dat -Encoding UTF8 > Out-Fil
e $RenFld\pak_emlcon1.dat
    + CategoryInfo          : InvalidArgument: (:) [Get-Content], ParameterBin 
   dingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell 
   .Commands.GetContentCommand
我有点力不从心,希望能得到一些帮助

我保证我在论坛上搜索过类似的主题和问题,但我有限的知识意味着我不知道我的搜索参数应该是什么,所以如果答案已经出来了,请你发誓,告诉我正确的方向

为你们能提供的任何帮助干杯


Ross。

我也尝试过使用echo$null>-path$RenFld\pak\u emlcon1.dat先创建我的文件,以便Get Content/Set\u Content可以工作,但它不能。这让我更加困惑。再次感谢大家的耐心,我已经通过反复试验解决了这个问题。我在一行代码中连接文件,然后在另一行更改编码。有点邋遢,但它很管用。感谢所有考虑过这件事的人。
-------- Error Details
Get-Content : A positional parameter cannot be found that accepts argument '$homedirexport\renewal\e-renewals\pak_emlcon1.dat'.
At $cliutl\eren_conc.ps1:13 char:12
+ Get-Content <<<<  -path $RenFld\ren_*pak_emlcon1.dat -Encoding UTF8 > Out-Fil
e $RenFld\pak_emlcon1.dat
    + CategoryInfo          : InvalidArgument: (:) [Get-Content], ParameterBin 
   dingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell 
   .Commands.GetContentCommand