Pfad unter Windows durch sed ersetzen?

Pfad unter Windows durch sed ersetzen?

Ich versuche, alle Pfade loszuwerden, die das aktuelle Verzeichnis enthalten, also habe ich

my_command | sed "s/%CD%//ig"

in der Eingabeaufforderung, aber es funktionierte nicht - es kam alles genauso heraus wie vorher.

Wie würde ich es zum Laufen bringen?

Antwort1

Das Problem mit Ihrem Befehl besteht darin, dass die Backslashes als Escape-Zeichen und nicht als wörtliche Backslashes behandelt werden.

Sie können dies umgehen, indem Sie den maskierten Verzeichnisnamen in einer Hilfsvariablen speichern %dir%:

for /f "tokens=*" %a in ('echo %cd%^| sed "s/\\/\\\\/g"') do set dir=%a

(Bei Verwendung in einer Batchdatei ersetzen Sie jedes %adurch %%a.)

sedSie können ab sofort wie gewohnt nutzen :

my_command | sed "s/%dir%//ig"

verwandte Informationen