0

Я делал небольшой сценарий в прошлом, который ищет большие файлы в определенном месте. Теперь я хочу создать .txt-файл с моим результатом. Но, к сожалению, я не смог правильно разместить командлет. Я переиграл другие вещи, но здесь у меня есть проблемы.где разместить командлет out-file?

get-childitem "c:\projects" -recurse | where {$_.length -gt 50mb } | foreach-object {write-host $_.FullName ("{0:N2}" -f ($_.Length/1MB)) "MB" -ForegroundColor "green" } 

Я попытался слишком тройник объект и выходной_файл в varible, я пытался поставить выходной_файл в конце концов, и я пытался поставить его перед тем, как форматировать размер.

Он работал только тогда, когда я разместил его перед форматированием. Но мне бы хотелось иметь форматированные размеры в моем .txt, а в других местах он просто создал пустой .txt-файл.

+0

Мне не нужен цвет, размер шрифта всегда один и тот же. форматирование только форматирует байты к mb. – RayofCommand

ответ

2

здесь один метод, использует Add-Content с -Encoding String для добавления данных. Кроме того, выложили ваши форматированные размеры в переменную, чтобы мы могли их обойти, избегая объекта конвейера и позволяя нам оставаться зелеными на консоли.

get-childitem "C:\projects" -recurse | where {$_.length -gt 50mb } | foreach-object {$a = $_.FullName + " " + ("{0:N2}" -f ($_.Length/1MB)) + "MB" ; write-host $A -ForegroundColor "green";Add-Content -Path C:\text.txt -Value "$a" -Encoding String} 
# 
2
Get-ChildItem "c:\projects" -recurse | 
    where {$_.length -gt 50mb } | 
    select FullName, @{Name="MB";Expression={("{0:N2}" -f ($_.Length/1MB))}} | 
    Format-Table -Wrap -AutoSize | 
    Out-File -FilePath size.txt -Append 

Я упал цвет переднего плана, как вы не сможете к выводу, что и добавляемые Format-Table -autosize исправить длинный путь усечение.

+0

при тестировании этот фрагмент обрезает дополнительные длинные пути, оставляя в выводе что-то вроде 'C: \ projects \ superlongfoldername \ subfolder \ toolong .....'. Я не мог переопределить внешний файл '-Width 255' paramater. –

+0

@ Knuckle-Dragger Я добавил Format-Table, чтобы исправить усечение. Не уверен, сколько времени будет поддерживать путь. – beavel

+1

Хороший рывок, забыл обо всем этом. После поиска я нашел этот пост, который напомнил мне, что мы должны использовать 'Format-Table -Wrap -AutoSize' для безумно длинных выходов. http://superuser.com/questions/690239/powershell-env-avoid-truncation-of-environment-variables –