
현재 디렉터리를 포함하는 모든 경로를 제거하려고 했기 때문에 그렇게 했습니다.
my_command | sed "s/%CD%//ig"
명령 프롬프트에서 실행했지만 작동하지 않았습니다. 모든 것이 이전과 똑같이 나왔습니다.
어떻게 작동하게 만들까요?
답변1
명령의 문제점은 백슬래시가 리터럴 백슬래시가 아닌 이스케이프 문자로 처리된다는 것입니다.
이스케이프된 디렉터리 이름을 보조 변수에 저장하면 이 문제를 해결할 수 있습니다 %dir%
.
for /f "tokens=*" %a in ('echo %cd%^| sed "s/\\/\\\\/g"') do set dir=%a
(배치 파일에서 사용하는 경우 모든를 %a
로 바꾸십시오 %%a
.)
sed
이제 평소처럼 사용할 수 있습니다 .
my_command | sed "s/%dir%//ig"