2010-01-12 8 views
1

un script PowerShell très simple de compter le nombre de transactions dans un fichier:Powershell et getContent CR LF

(gc \\mimkeimc11n\Batch\FundQuest\TradeFiles\trades.dat |? {$_ -match 'SL|BY'} | Measure-Object | select count).count > \\mimkeimc11n\Batch\FundQuest\ConfirmtoFQ\NumberofTrades.txt 

Le problème que je suis en cours d'exécution en est la sortie NumberofTrades.txt est notamment le numéro que je veux , mais aussi un CR LF, pas sûr pourquoi ??? Toute aide serait grandement appréciée.

image http://screencast.com/t/MGM3ZTc0Mzct

+0

Réponse rapide: regardez le comportement de la sortie fichier. Votre pipeline a l'air de faire passer un entier à Out-File, donc le problème est probablement que Out-File place un CRLF à la fin de la ligne ... ou qu'il voit deux éléments dans le pipeline (?). Clarification: Out-File est la cmdlet qui est exécutée lorsque vous utilisez l'opérateur>. –

Répondre

2

PowerShell est assez persistant au sujet de la sortie des nouvelles lignes pour vous lorsque vous envoyez des chaînes à Out-File (alias>) ou même Ajouter/Set-Content. Il peut parfois être exaspérant et me fait souhaiter un paramètre -NoNewLine sur ces cmdlets. Pour l'instant, vous pouvez utiliser une API .NET par exemple:

$path = '\mimkeimc11n\Batch\FundQuest\ConfirmtoFQ\NumberofTrades.txt' 
(gc \mimkeimc11n\Batch\FundQuest\TradeFiles\trades.dat | 
    ?{$_ -match 'SL|BY'} | Measure-Object).count | 
%{[IO.File]::WriteAllText($path, $_)} 
+0

merci Keith cela a fait l'affaire, et je ne pouvais pas être plus d'accord sur le -nonewline, @ moins nous donner une option – duhaas

+1

Si quelqu'un est d'accord avec ce besoin, alors votez sur la suggestion à https://connect.microsoft.com/PowerShell /feedback/ViewFeedback.aspx?FeedbackID=524739 –

Questions connexes