Попробуйте сделать это:
%COMSPEC% /c "%ProgramFiles%\7-Zip\7z.exe" ...
У меня есть команда, например, "C:\Program Files\7-zip\7z.exe" x foo.7z -y
которая будет извлекать (с полными путями) в текущий каталог.
Но то, что он делает, чего я не хочу, - это выводить отдельные пути к stdout. Это информация, которая мне не нужна.
Однако в Windows перенаправление этого в NUL (эквивалент /dev/null
Linux) а-ля не "C:\Program Files\7-zip\7z.exe" x foo.7z -y > NUL
приводит к разархивированию файлов, потому что 7-Zip, кажется, распаковывает в NUL вместо того, чтобы выдвигать вывод текста команды в NUL (что мы и хотим) ).
На самом деле, эта команда работает из командной оболочки Windows (то есть, она распаковывает файлы так, как я хочу, но без записи текста на консоль), но это не происходит из- за выполнения агента TeamCity в сборщике командной строки (то есть распаковывается в NUL).
Как я могу заставить его делать то же самое в TeamCity (который выполняется как сервис)?
Попробуйте сделать это:
%COMSPEC% /c "%ProgramFiles%\7-Zip\7z.exe" ...
7z.exe x foo.7z -y> NUL В моем случае работает нормально. Вы уверены, что поведение не вызвано чем-то другим, и вы не видите сообщение об ошибке из-за перенаправления вывода?
Кроме того, вы можете перенаправить вывод в файл вместо NUL и, таким образом, также исключить его из вывода.