Я пытаюсь избавиться от всех путей, которые включают в себя текущий каталог, поэтому я сделал
my_command | sed "s/%CD%//ig"
в командной строке, но это не сработало - все вышло так же, как и раньше.
Как бы я заставить это работать?
Проблема с вашей командой в том, что обратные слэши обрабатываются как escape-символы, а не буквальные.
Вы можете преодолеть это, сохранив имя экранированного каталога во вспомогательной переменной %dir%
:
for /f "tokens=*" %a in ('echo %cd%^| sed "s/\\/\\\\/g"') do set dir=%a
(Если используется в пакетном файле, замените каждый %a
на %%a
.)
Теперь вы можете использовать sed
как обычно:
my_command | sed "s/%dir%//ig"