cmd-Aufruf powershell "Sie müssen einen Wert angeben, der Ausdruck auf der rechten Seite der' - '- operator"
Bevor ich weiter gehen, meine Erfahrung mit Powershell beträgt nur 2 Tage.
Ich versuche zu nennen, die ein powershell-Skript von der Befehlszeile aus mit der vier-Parameter Hinzugefügt, um den Befehl. Das powershell-Skript einfach reinigt eine CSV-Datei und macht eine Kopie der Datei in jeder Phase der Reinigung.
Den Variablen a
, b
, c
und d
im Skript beziehen sich auf die neuen Dateinamen (einschließlich der vollständigen Adresse).
PowerShell-Skript
param(
[string]$a,
[string]$b,
[string]$c,
[string]$d
)
Get-Content $a | ForEach-Object { $_ -replace """""""""""","""""" } | Set-Content $b -Force
Get-Content $b | ForEach-Object { $_ -replace """""""","""" } | Set-Content $c -Force
Get-Content $c | ForEach-Object { $_ -replace """""","" } | Set-Content $d -Force
Befehl Skript
Den Befehl Skript unten ist das, was ich versuche zu laufen, in cmd
(Anmerkung: ich habe genommen aus der realen Adressen).
powershell.exe '\\somefileaddress\CleanData.ps1'
-a "\\someaddress\DrFA-C.csv"
-b "\\someaddress\DrFA-C_2.csv"
-c "\\someaddress\DrFA-C_3.csv"
-d "\\someaddress\DrFA-C_4.csv"
Die Fehlermeldung die ich erhalte ist:
Müssen Sie einen Wert Ausdruck auf der rechten Seite von der ' - ' - operator.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bin ich ziemlich sicher, dass das problem nicht mit dem Skript, aber mit, wie Sie fordern es. Dies funktioniert für mich (ohne die Zeilenumbrüche, die eingefügt wurden, für die Klarheit):
Verwendest du doppelte Anführungszeichen, das macht es eine erweiterbare Zeichenfolge (der parser ist auf die Suche nach Powershell-Operatoren in der Zeichenkette, und versuchen, berufen sich auf diese Betreiber während der Analyse). Das ist ein Powershell-operator, so dass es denkt, Sie sind tring zu tun, eine Art von Subtraktion.
Wechseln Sie in den single quotes zu erzählen, dass Sie wollen, dass die string-wörtlich interpretiert.
Klingt nicht wie diese Antwort Adressen in dieser Frage speziell, aber nur, falls es jemand hilft, einige Tag:
Hatte ich diese Fehlermeldung, wenn ein Skript ausgeführt, welches geschrieben wurde für PowerShell v5 auf einem Windows 7-computer mit PowerShell v2 installiert (die Standard-version für Windows 7). Es war eine wirklich komplexe Linie und die Art, wie es geschrieben wurde einfach nicht spielen, auch mit älteren Versionen der PowerShell.
Führen Sie diesen code in PowerShell:
$PSVersionTable.PSVersion.Major
und wenn es zurück2
(oder vielleicht sogar3
?) Sie können versuchen, ein Upgrade Ihrer version von PowerShell durch die Installation diese windows update.