Comment rechercher et remplacer une chaîne dans un fichier avec cmd ou PowerShell?

13

J'ai un fichier .txt dans lequel je veux remplacer la chaîne aaapar bbb.

J'ai essayé le code PowerShell suivant:

Get-Content c:\1.txt | ForEach-Object { $_ -replace "aaa", "bbb" } | Set-Content c:\1.txt

J'obtiens une erreur qui 1.txtest utilisée par un autre processus. Qu'est-ce que je fais mal?

Elad Benda
la source

Réponses:

18
(get-content c:\1.txt) | foreach-object {$_ -replace "prod", "qa1"} | set-content c:\1.txt

Les parenthèses autour Get-Contentgarantissent que l'opération Get est terminée avant le début de l'opération Set, sans quoi les deux fonctions essaieraient toutes les deux d'accéder au fichier en même temps.

Elad Benda
la source