Domanda

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { "

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") `n } ` | out-file test.txt Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall ` | ForEach-Object {

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Write-Host -Separator `n Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall ` | ForEach-Object -Process {

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | foreach(

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

) { echo

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

`n }

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") `n" }

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") `n } ` | out-file test.txt Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall ` | ForEach-Object {

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Write-Host -Separator `n Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall ` | ForEach-Object -Process {

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | foreach(

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

) { echo

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

Get-ChildItem -path hklm:\software\microsoft\windows\currentversion\uninstall `
    | ForEach-Object -Process { Write-Output 

Eseguo il codice seguente usando PowerShell per ottenere un elenco di programmi di aggiunta / rimozione dal registro:

<*>

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

`n }

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

.GetValue("DisplayName") } ` | Out-File addrem.txt

Voglio che l'elenco sia separato da newline per ciascun programma. Ho provato:

<*>

Ma tutto si traduce in una strana formattazione quando viene emesso sulla console e con tre caratteri quadrati dopo ogni riga quando viene emesso su un file. Ho provato Format-List , Format-Table e Format-Wide senza fortuna. Inizialmente, pensavo che qualcosa del genere avrebbe funzionato:

<*>

Ma questo mi ha dato solo un errore.

È stato utile?

Soluzione

Oppure, basta impostare la separatore del campo di output (OFS) per raddoppiare le nuove righe, quindi assicurati di ottenere una stringa quando la invii al file:

$OFS = "`r`n`r`n"
"$( gci -path hklm:\software\microsoft\windows\currentversion\uninstall | 
    ForEach-Object -Process { write-output 

Oppure, basta impostare la separatore del campo di output (OFS) per raddoppiare le nuove righe, quindi assicurati di ottenere una stringa quando la invii al file:

<*>

Attenzione a usare ` e non '. Sulla mia tastiera (layout Qwerty inglese-americano) si trova a sinistra di 1 .
(Spostato qui dai commenti - Grazie Koen Zomers)

.GetValue('DisplayName') } )" | out-file addrem.txt

Attenzione a usare ` e non '. Sulla mia tastiera (layout Qwerty inglese-americano) si trova a sinistra di 1 .
(Spostato qui dai commenti - Grazie Koen Zomers)

Altri suggerimenti

Provalo:

PS> $nl = [Environment]::NewLine
PS> gci hklm:\software\microsoft\windows\currentversion\uninstall | 
        ForEach { 

Provalo:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Produce il seguente testo nel mio file addrem.txt:

ForEach-Object -Process { "

Provalo:

PS> $nl = [Environment]::NewLine
PS> gci hklm:\software\microsoft\windows\currentversion\uninstall | 
        ForEach { 

Provalo:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Produce il seguente testo nel mio file addrem.txt:

Foreach-Object -Process { "$(

Provalo:

PS> $nl = [Environment]::NewLine
PS> gci hklm:\software\microsoft\windows\currentversion\uninstall | 
        ForEach { 

Provalo:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Produce il seguente testo nel mio file addrem.txt:

ForEach-Object -Process { "

Provalo:

PS> $nl = [Environment]::NewLine
PS> gci hklm:\software\microsoft\windows\currentversion\uninstall | 
        ForEach { 

Provalo:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Produce il seguente testo nel mio file addrem.txt:

$(`<Multiple statements can go in here`>).

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>.GetValue("DisplayName") } | Where {

Provalo:

<*>

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>} | Sort | Foreach {"

Provalo:

<*>

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>$nl"} | Out-File addrem.txt -Enc ascii

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>.GetValue("DisplayName") `n" }

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>.GetValue("DisplayName") } | Where {

Provalo:

<*>

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>} | Sort | Foreach {"

Provalo:

<*>

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>$nl"} | Out-File addrem.txt -Enc ascii

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>.GetValue('DisplayName'))`r`n" }

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>.GetValue("DisplayName") } | Where {

Provalo:

<*>

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>} | Sort | Foreach {"

Provalo:

<*>

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>$nl"} | Out-File addrem.txt -Enc ascii

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>.GetValue("DisplayName") `n" }

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>.GetValue("DisplayName") } | Where {

Provalo:

<*>

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>} | Sort | Foreach {"

Provalo:

<*>

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>$nl"} | Out-File addrem.txt -Enc ascii

Produce il seguente testo nel mio file addrem.txt:

<*>

Nota: sul mio sistema, GetValue (" DisplayName ") restituisce null per alcune voci, quindi le filtro. A proposito, eri vicino a questo:

<*>

Tranne che all'interno di una stringa, se è necessario accedere a una proprietà di una variabile, ovvero "valutare un'espressione", è necessario utilizzare la sintassi di sottoespressione in questo modo:

<*>

Essenzialmente all'interno di una stringa tra virgolette PowerShell espanderà variabili come $ _ , ma non valuterà le espressioni a meno che non inserisca l'espressione in una sottoespressione usando questa sintassi:

<*>

In definitiva, quello che stai cercando di fare con le righe vuote EXTRA tra ognuna è un po 'confuso :)

Penso che ciò che vuoi davvero fare sia usare Get-ItemProperty . Riceverai errori quando mancano dei valori, ma puoi eliminarli con -ErrorAction 0 o lasciarli come promemoria. Poiché il provider del Registro di sistema restituisce proprietà aggiuntive, ti consigliamo di inserire un Select- Oggetto che utilizza le stesse proprietà di Get-Properties.

Quindi, se si desidera ogni proprietà su una riga con una riga vuota tra, utilizzare Elenco formati (altrimenti, utilizza Format-Table per ottenerne uno per riga).

gci -path hklm:\software\microsoft\windows\currentversion\uninstall |
gp -Name DisplayName, InstallDate | 
select DisplayName, InstallDate | 
fl | out-file addrem.txt

Penso che tu abbia avuto l'idea corretta con il tuo ultimo esempio. Hai ricevuto solo un errore perché stavi cercando di inserire virgolette all'interno di una stringa già citata. Questo risolverà il problema:

gci -path hklm:\software\microsoft\windows\currentversion\uninstall | ForEach-Object -Process { write-output (

Penso che tu abbia avuto l'idea corretta con il tuo ultimo esempio. Hai ricevuto solo un errore perché stavi cercando di inserire virgolette all'interno di una stringa già citata. Questo risolverà il problema:

gci -path hklm:\software\microsoft\windows\currentversion\uninstall | ForEach-Object -Process { write-output "$(

Penso che tu abbia avuto l'idea corretta con il tuo ultimo esempio. Hai ricevuto solo un errore perché stavi cercando di inserire virgolette all'interno di una stringa già citata. Questo risolverà il problema:

gci -path hklm:\software\microsoft\windows\currentversion\uninstall | ForEach-Object -Process { write-output (

Penso che tu abbia avuto l'idea corretta con il tuo ultimo esempio. Hai ricevuto solo un errore perché stavi cercando di inserire virgolette all'interno di una stringa già citata. Questo risolverà il problema:

<*>

Modifica: l'operatore $ () di Keith in realtà crea una sintassi migliore (me ne dimentico sempre). Puoi anche evitare le virgolette tra virgolette in questo modo:

<*>.GetValue("DisplayName") + "`n") }

Modifica: l'operatore $ () di Keith in realtà crea una sintassi migliore (me ne dimentico sempre). Puoi anche evitare le virgolette tra virgolette in questo modo:

<*>.GetValue(`"DisplayName`"))`n" }

Modifica: l'operatore $ () di Keith in realtà crea una sintassi migliore (me ne dimentico sempre). Puoi anche evitare le virgolette tra virgolette in questo modo:

<*>.GetValue("DisplayName") + "`n") }

Modifica: l'operatore $ () di Keith in realtà crea una sintassi migliore (me ne dimentico sempre). Puoi anche evitare le virgolette tra virgolette in questo modo:

<*>

L'opzione che tendo a usare, principalmente perché è semplice e non devo pensare, sta usando Scrivi-Output come di seguito. Write-Output inserirà un marcatore EOL nella stringa per te e puoi semplicemente produrre la stringa finita.

Write-Output $stringThatNeedsEOLMarker | Out-File -FilePath PathToFile -Append

In alternativa, puoi anche creare l'intera stringa utilizzando Write-Output e quindi inserire la stringa finita in out-File .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top