Я пытаюсь написать своего рода скрипт перенаправления, чтобы стабилизировать исполняемый файл в формате clang, используемый Visual Studio, над различными моими проектами.
Например:
- Проект 1: имеет формат .clang на основе LLVM 5.0.0
- Проект 2: имеет формат .clang на основе LLVM 8.0.0
Таким образом, вместо использования стандартного clang-формата я пытаюсь использовать clang-format.cmd, который использовался на основе проекта.
Мой текущий подход:
@echo OFF
:checkFormat
IF EXIST "clang-format.exe" (
call clang-format.exe %* <&0 >&1
) ELSE (
REM Loop the dir tree until the root the of the disk
if "%cd:~3,1%"=="" (
exit -1
)
cd ..
goto checkFormat
)
Однако всякий раз, когда этот скрипт вызывается из Visual Studio, я получаю сообщение об ошибке:
Произошла ошибка при форматировании с ClangFormat
Труба закончилась.
Я попытался заменить вызов другим cmd, который печатает что-то в файл, и кажется, что он не вызывается.
Тем не менее, я уже добавил аналогичное создание файла перед вызовом, который подтверждает, что он достигнут, и в каталоге, который я ожидаю.
Как мне проверить, какой контент у STDIN? Как перенаправить этот стандартный ввод в исполняемый файл?
EDIT При запуске из-под CMD-подсказки выдает следующую ошибку:
Дескриптор не может быть продублирован
при перенаправлении ручки 0.