Question

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

) { echo

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

`n }

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

.GetValue("DisplayName") `n" }

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

) { echo

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

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

J'exécute le code suivant à l'aide de PowerShell pour obtenir la liste des programmes d'ajout / suppression du registre:

<*>

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

`n }

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

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

Je souhaite que la liste soit séparée par des nouvelles lignes pour chaque programme. J'ai essayé:

<*>

Mais tout cela entraîne un formatage étrange lors de la sortie vers la console et trois caractères carrés après chaque ligne lors de la sortie dans un fichier. J'ai essayé Format-List , Format-Table et Format-Wide sans succès. À l'origine, je pensais que quelque chose comme cela fonctionnerait:

<*>

Mais cela vient de me donner une erreur.

Était-ce utile?

La solution

Vous pouvez également définir séparateur de champ en sortie (OFS) pour doubler les nouvelles lignes, puis vous assurer d'obtenir une chaîne lorsque vous l'envoyez dans le fichier:

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

Vous pouvez également définir séparateur de champ en sortie (OFS) pour doubler les nouvelles lignes, puis vous assurer d'obtenir une chaîne lorsque vous l'envoyez dans le fichier:

<*>

Veillez à utiliser le ` et non le '. Sur mon clavier (présentation Qwerty en anglais américain), il se trouve à gauche du 1 .
(Déplacé ici à partir des commentaires - Merci Koen Zomers)

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

Veillez à utiliser le ` et non le '. Sur mon clavier (présentation Qwerty en anglais américain), il se trouve à gauche du 1 .
(Déplacé ici à partir des commentaires - Merci Koen Zomers)

Autres conseils

Essayez ceci:

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

Essayez ceci:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Cela donne le texte suivant dans mon fichier addrem.txt:

ForEach-Object -Process { "

Essayez ceci:

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

Essayez ceci:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Cela donne le texte suivant dans mon fichier addrem.txt:

Foreach-Object -Process { "$(

Essayez ceci:

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

Essayez ceci:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Cela donne le texte suivant dans mon fichier addrem.txt:

ForEach-Object -Process { "

Essayez ceci:

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

Essayez ceci:

Adobe AIR

Adobe Flash Player 10 ActiveX

...

Cela donne le texte suivant dans mon fichier addrem.txt:

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

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Essayez ceci:

<*>

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

<*>} | Sort | Foreach {"

Essayez ceci:

<*>

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Essayez ceci:

<*>

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

<*>} | Sort | Foreach {"

Essayez ceci:

<*>

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Essayez ceci:

<*>

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

<*>} | Sort | Foreach {"

Essayez ceci:

<*>

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Essayez ceci:

<*>

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

<*>} | Sort | Foreach {"

Essayez ceci:

<*>

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

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

Cela donne le texte suivant dans mon fichier addrem.txt:

<*>

Remarque: sur mon système, GetValue ("DisplayName") renvoie la valeur null pour certaines entrées. Je les filtre donc. BTW, vous étiez proche avec ceci:

<*>

Sauf que, dans une chaîne, si vous devez accéder à la propriété d'une variable, c'est-à-dire "évaluer une expression", vous devez utiliser la syntaxe de sous-expression comme suit:

<*>

Essentiellement, dans une chaîne à double guillemet, PowerShell développera des variables telles que $ _ , mais il n'évaluera pas les expressions à moins que ne mette l'expression dans une sous-expression à l'aide de la syntaxe suivante:

<*>

En fin de compte, ce que vous essayez de faire avec les lignes vides EXTRA entre chacune est un peu déroutant :)

Je pense que ce que vous voulez vraiment faire, c'est utiliser Get-ItemProperty . Vous obtiendrez des erreurs lorsque des valeurs seront manquantes, mais vous pourrez les supprimer avec -ErrorAction 0 ou simplement les laisser en tant que rappels. Étant donné que le fournisseur de registre renvoie des propriétés supplémentaires, vous devrez vous en tenir à un Select- Objet qui utilise les mêmes propriétés que Get-Properties.

Ensuite, si vous souhaitez que chaque propriété soit sur une ligne avec une ligne vide, utilisez Format-List (sinon, utilisez Format-Table pour en obtenir un par ligne).

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

Je pense que vous avez eu la bonne idée de votre dernier exemple. Vous avez seulement obtenu une erreur parce que vous essayiez de mettre des guillemets dans une chaîne déjà citée. Cela résoudra le problème:

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

Je pense que vous avez eu la bonne idée de votre dernier exemple. Vous avez seulement obtenu une erreur parce que vous essayiez de mettre des guillemets dans une chaîne déjà citée. Cela résoudra le problème:

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

Je pense que vous avez eu la bonne idée de votre dernier exemple. Vous avez seulement obtenu une erreur parce que vous essayiez de mettre des guillemets dans une chaîne déjà citée. Cela résoudra le problème:

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

Je pense que vous avez eu la bonne idée de votre dernier exemple. Vous avez seulement obtenu une erreur parce que vous essayiez de mettre des guillemets dans une chaîne déjà citée. Cela résoudra le problème:

<*>

Edit: L’opérateur $ () de Keith crée en fait une meilleure syntaxe (j’oublie toujours celle-ci). Vous pouvez également échapper des guillemets entre guillemets comme suit:

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

Edit: L’opérateur $ () de Keith crée en fait une meilleure syntaxe (j’oublie toujours celle-ci). Vous pouvez également échapper des guillemets entre guillemets comme suit:

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

Edit: L’opérateur $ () de Keith crée en fait une meilleure syntaxe (j’oublie toujours celle-ci). Vous pouvez également échapper des guillemets entre guillemets comme suit:

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

Edit: L’opérateur $ () de Keith crée en fait une meilleure syntaxe (j’oublie toujours celle-ci). Vous pouvez également échapper des guillemets entre guillemets comme suit:

<*>

L'option que j'ai tendance à utiliser, principalement parce que c'est simple et que je n'ai pas à y penser, utilise Write-Output comme ci-dessous. Write-Output mettra un marqueur EOL dans la chaîne pour vous et vous pourrez simplement sortir la chaîne finie.

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

Vous pouvez également simplement construire la chaîne entière à l'aide de Write-Output, puis insérer la chaîne finie dans Fichier sortant .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top