
Estou tentando me livrar de todos os caminhos que incluem o diretório atual, então fiz
my_command | sed "s/%CD%//ig"
no prompt de comando, mas não funcionou - tudo saiu como antes.
Como eu faria isso funcionar?
Responder1
O problema com o seu comando é que as barras invertidas são tratadas como caracteres de escape, e não como barras invertidas literais.
Você pode superar isso armazenando o nome do diretório com escape em uma variável auxiliar %dir%
:
for /f "tokens=*" %a in ('echo %cd%^| sed "s/\\/\\\\/g"') do set dir=%a
(Se usado em um arquivo em lote, substitua each %a
por %%a
.)
Você pode usar sed
normalmente agora:
my_command | sed "s/%dir%//ig"