Как я добавляю новую строку для управления выводом в PowerShell?

Да, я был смущен этим долгое время также.

Flex, кажется, их имя 'Разработчика Flex' IDE (на основе Eclipse), и общий подход создания флеш-файлов с помощью mxml и ActionScript, а не нормальные инструменты флэш-памяти.

я думаю, подход mxml и ActionScript (т.е. Flex) разработан для обращения намного больше к программистам, где, поскольку сторона Flash разработана больше для обращений к графическим дизайнерам.

конечным результатом любого подхода является .swf файл, который может быть выполнен в плагине Flash player браузера (хотя с Flex можно быть нацелены на Среду выполнения Adobe AIR вместо этого, если Вы будете хотеть получить доступ к файловой системе и работать офлайн и т.д.).

Мой совет был бы, если Вы происходите из среды программирования, для запуска с Flex.

65
задан Peter Mortensen 27 December 2014 в 14:37
поделиться

4 ответа

Или просто установите разделитель выходных полей (OFS) на двойной перевод строки, а затем убедитесь, что вы получаете строку при отправке ее в файл:

$OFS = "`r`n`r`n"
"$( gci -path hklm:\software\microsoft\windows\currentversion\uninstall | 
    ForEach-Object -Process { write-output $_.GetValue('DisplayName') } )" | 
 out-file addrem.txt

Остерегайтесь использовать `, а не '. На моей клавиатуре (американско-английская раскладка Qwerty) она расположена слева от 1 .
(Перемещено сюда из комментариев - Спасибо Koen Zomers)

84
ответ дан 24 November 2019 в 15:15
поделиться

Думаю, в последнем примере вы правильно поняли. Вы получили ошибку только потому, что пытались поместить кавычки в уже заключенную в кавычки строку. Это исправит:

gci -path hklm:\software\microsoft\windows\currentversion\uninstall | ForEach-Object -Process { write-output ($_.GetValue("DisplayName") + "`n") }

Изменить: оператор Кейта $ () на самом деле создает лучший синтаксис (я всегда забываю об этом). Вы также можете использовать кавычки внутри кавычек:

gci -path hklm:\software\microsoft\windows\currentversion\uninstall | ForEach-Object -Process { write-output "$($_.GetValue(`"DisplayName`"))`n" }
5
ответ дан 24 November 2019 в 15:15
поделиться

Попробуйте:

PS> $nl = [Environment]::NewLine
PS> gci hklm:\software\microsoft\windows\currentversion\uninstall | 
        ForEach { $_.GetValue("DisplayName") } | Where {$_} | Sort |
        Foreach {"$_$nl"} | Out-File addrem.txt -Enc ascii

Это дает следующее текст в моем файле addrem.txt:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Примечание: в моей системе GetValue ("DisplayName") возвращает null для некоторых записей, поэтому я их отфильтровываю. Кстати, вы были близки с этим:

ForEach-Object -Process { "$_.GetValue("DisplayName") `n" }

За исключением того, что внутри строки, если вам нужно получить доступ к свойству переменной, то есть «оценить выражение», тогда вам нужно использовать синтаксис подвыражения, например:

Foreach-Object -Process { "$($_.GetValue('DisplayName'))`r`n" }

По сути, в строке с двойными кавычками PowerShell будет раскрывать такие переменные, как $ _ , но не будет оценивать выражения , если только вы не поместите выражение в подвыражение, используя следующий синтаксис:

$(`<Multiple statements can go in here`>).
77
ответ дан 24 November 2019 в 15:15
поделиться

В конечном итоге то, что вы пытаетесь сделать с ДОПОЛНИТЕЛЬНЫМИ пустыми строками между ними, немного сбивает с толку :)

Я думаю, что вы действительно хотите использовать Get -ItemProperty . Вы получите ошибки, если значения отсутствуют, но вы можете подавить их с помощью -ErrorAction 0 или просто оставить их как напоминания. Поскольку провайдер реестра возвращает дополнительные свойства, вы захотите использовать Select-Object , который использует те же свойства, что и Get-Properties.

Затем, если вы хотите, чтобы каждое свойство было в строке с пустая строка между ними, используйте Format-List (в противном случае используйте Format-Table , чтобы получить по одной в каждой строке).

gci -path hklm:\software\microsoft\windows\currentversion\uninstall |
gp -Name DisplayName, InstallDate | 
select DisplayName, InstallDate | 
fl | out-file addrem.txt
6
ответ дан 24 November 2019 в 15:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: