用 sed 替换 Windows 上的路径?

use*_*686 3 windows sed

我试图摆脱包含当前目录的所有路径,所以我做了

my_command | sed "s/%CD%//ig"
Run Code Online (Sandbox Code Playgroud)

在命令提示符下,但它不起作用 - 一切都像以前一样。

我将如何使它工作?

Den*_*nis 6

您的命令的问题在于反斜杠被视为转义字符,而不是文字反斜杠。

您可以通过将转义目录名称存储在辅助变量中来克服此问题%dir%

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

(如果在批处理文件中使用,请将每个替换%a%%a。)

sed现在可以照常使用:

my_command | sed "s/%dir%//ig"
Run Code Online (Sandbox Code Playgroud)