Get-Content oder "{$ _ -" wird nicht als interner oder externer Befehl erkannt

0

Ich versuche, ein Wort (USERNAME durch testing) in meiner Datei zu ersetzen.

Ich versuche, den folgenden Befehl von Powershell auszuführen, erhalte jedoch die Fehlermeldung ->

Get-Content wird nicht als interner oder externer Befehl erkannt

   get-content file.text | %{$_ -replace "USERNAME","testing"}

Ich habe den Befehl durch folgenden ersetzt:

powershell.exe -Command file.text | %{$_ -replace "USERNAME","testing"}

Jetzt erhalte ich die Fehlermeldung -> {$ _ - wird nicht als interner oder externer Befehl erkannt

Es wurde auch versucht, C: \ Windows \ System32 in die Umgebungsvariable einzufügen, aber kein Glück.

Stuck & Need Help!

Mishi
quelle
schreibe foreachanstatt %und schau ob das funktioniert. Ich vermute, Sie haben eine kleine Verwechslung zwischen Batch und PowerShell. %im Batch wird als Variable erkannt
SimonS

Antworten:

2

Ich bin mir ziemlich sicher, dass Sie den folgenden Befehl in cmd.exe (reguläre Befehlszeile) is not recognized as an internal or external commandausführen, da dies ein Fehler ist, den Sie in cmd sehen würden.

get-content file.text | %{$_ -replace "USERNAME","testing"}

Was Ihren zweiten Befehl angeht, so gibt es dort eine Qouting-Verwechslung. Die einfachste Möglichkeit, dies zu beheben, besteht darin, doppelte qoutes durch einzelne qoutes zu ersetzen und doppelte qoutes um die Parameterargumente -Command herum anzugeben. Genau so:

powershell.exe -Command "Get-Content file.text | %{$_ -replace 'USERNAME','testing'}"
WetterVorhersageRat
quelle
Jetzt, nachdem ich Anführungszeichen hinzugefügt habe, erhalte ich folgende Fehlermeldung: Zeile: 1 Zeichen: 39 + ... Inhalt file.text | {$ _ -replace 'USERNAME', + ~~~~~~~~~~~~~~~~~~~~~~~~~ Ausdrücke sind nur als erstes Element einer Pipeline zulässig. + CategoryInfo: ParserError: (:) [], ParentContains + FullyQualifiedErrorId: ExpressionsMustBeFirstInPipeline
Mishi
Ich lasse es in Powershell laufen
Mishi
Können Sie den genauen Befehl einfügen, den Sie ausführen?
WeatherForecastingRat
SET CONFIG_FILE_NAME = file.conf
Mishi
powershell.exe -Befehl "Get-Content C: \ Benutzer \ Admin \ Downloads \ ne \ w-alertshipperWSO2.conf | foreach-object {$ _ -replace '_USERNAME', 'testing'} | Set-Content C: \ Benutzer \ Admin \ workspace \ w-alertshipperWSO2.conf -Force "
Mishi