В пакетном файле вы можете использовать построчную подстановку строк, чтобы заменить вкладки четырьмя пробелами:
@echo off
setlocal EnableDelayedExpansion
for /f "tokens=* delims=" %%a in ('hg diff') do (
set __temp=%%a
echo !__temp: = !
)
endlocal
EnableDelayedExpansion включил использование !
s и модификация переменных внутри цикла for
.
Похоже, что вставка кода в этот ответ заменила вкладку на три пробела. Когда вы копируете это в командный файл, убедитесь, что между символами :
и =
в строке echo
есть фактический символ табуляции.
Если у вас есть одинарные кавычки в команде, которую нужно запустить (я на самом деле не знаю полный синтаксис hg diff
), тогда вам нужно заключить ее в кавычки и включить usebackq
. Это означает, что вы не можете использовать обратные кавычки в команде, которую нужно запустить. Выбери один.
Версия в кавычках:
@echo off
setlocal EnableDelayedExpansion
for /f "usebackq tokens=* delims=" %%a in (`hg diff`) do (
set __temp=%%a
echo !__temp: = !
)
endlocal