我正在尝试将目录中的所有文件名输出到文件。看起来很简单,但是将来我将根据文件名创建有用的信息,并输出到另一个系统的文件中。
当我将信息输出到文件时,在记事本中打开时显示为乱码。输出到屏幕看起来不错。
这是我的代码:
$files = Get-ChildItem "s:\centmobile\rates\currentrates\forupload\"
$outfile = "s:\centmobile\rates\currentrates\test.txt"
"New File"|Out-File $outfile -Encoding ascii
foreach ($f in $files){
Get-Content $f.FullName | Add-Content $outfile -Encoding Ascii
Write-Output $f.FullName
}
屏幕输出看起来不错:
PS C:\Windows\System32\WindowsPowerShell\v1.0> S:\CentMobile\Software\Dev\cre8hdrinfo.ps1
S:\centmobile\rates\currentrates\forupload\2019406BICS_BC_Rates_ForUpload.xlsx
S:\centmobile\rates\currentrates\forupload\2019406BICS_FC_Rates_ForUpload.xlsx
文件输出看起来不太好。
New File
PK ! –~íGq % [Content_Types].xml ¢( ¬”ËNÃ0E÷HüCä-Jܲ@5í‚Ç
A%ʘxÒXqlËã–öU(4BÍ&–ã™{O&3žÌ6NÖàQY“³q6b ˜ÂJe–9û\¼¤÷,Á ŒÚÈÙͦ×W“ÅÖ&”m0gUîs,*hfÖ¡“ÒúFÚú%w¢¨ÅøíhtÇk˜†VƒM'OPŠ•Éó†^ïH<hdÉã.°õÊ™pN«B"åk#¹¤{‡Œ2cVÊá
a0ÞéОüm°Ï{§Òx%!™ÞDC|£ù·õõ—µuv^¤ƒÒ–¥*@ÚbÕP2t„Ä
4:‹kÖeÜgüc0ò¸Œi¿/
÷p ý0o„~U¦F~ºšèT»*PÏË)¢L!†º¢hŸs%<Èài\8Õ>ÇAÍ<÷Ö!µ‡ÿWá0·mvêH|PpœÜ® 8:Ò•pqÙÛÎ2d‡7—Üô ÿÿ PK ! µU0#ô L _rels/.rels ¢( ¬’MOÃ0†ïHü‡È÷ÕÝBKwAH»!T~€Iܵ£$Ý¿'TƒG½~üÊÛÝ<êÈ!öâ4¬‹;#¶w†—úqu*&r–Fq¬áÄvÕõÕö™GJy(v½*«¸¨¡KÉß#FÓñD±Ï.W ¥†=™ZÆMYÞbø®ÕBS톰·7 ê“Ï›×–¦é
?ˆ9LìÒ™ÈsbgÙ®|Èl!õùUSh9i°bžr:"y_dlÀóD›¿ý|-NœÈR"4ø2ÏGÇ% õZ´4ñËyÄ7 ëÈðÉ‚‹¨Þ ÿÿ PK ! …ë — † xl/workbook.xml¬Umo›:þ~¥ýÆýLÁ¼ƒ’LI ÝJÛT¥]÷¥Òä€S¬æÓ¤ªößwlBš.ÕÔu‹ˆß?çœç&vu¥ÝÞQÖLutféirVÐævª¹ÊŒP×:›W¬!Sýtú‡Ù»&[ÆïÖŒÝi ÐtS½¢M³ËKRã¤•
ã50ä·f×r‚‹®$DÔ•i[–oÖ˜6ú€ó×`°Í†æ$ay_“F œTX ý®¤m7¢ÕùkàjÌïúÖÈYÝÄšVT<(P]«óøü¶a¯+0{‡<mÇáñá,hìñ&X:¹ª¦9gÛˆ3€6Ò'ö#ËDè™v§>x’krrOe¬¸ÿFVþËCÖ£!–ÒJÎ{#šwàfë³É†Väz®†Ûö3®e¤*]«p'Ò‚
RLõ †lKžMð¾]ô´‚U¹¶§›³ƒœ/¸V
...
屏幕输出和文件看起来非常不同的原因是,您根本没有向屏幕和文件输出相同的内容。
带有:
Get-Content $f.FullName | Add-Content $outfile -Encoding Ascii
正如命令所暗示的,您正在获取每个文件的内容并输出到$ outfile。
同时使用:
>Write-Output $f.FullName
您只是将文件名列表输出到屏幕。
正如您的问题所说,这就是您要使用的文件名,只需更改:
Get-Content $f.FullName | Add-Content $outfile -Encoding Ascii
至:
$f.FullName | Add-Content $outfile -Encoding Ascii
并且应该在屏幕上输出与文件相同的内容。
在这里检查/解决问题的一种好方法是删除以下所有内容:
Get-Content $f.FullName
并查看输出,该输出看起来与文件非常相似,并提示您那里有问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句