6

У меня есть команда, такая как "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 (который выполняется как сервис)?

2 ответа2

7

Попробуйте сделать это:

%COMSPEC% /c "%ProgramFiles%\7-Zip\7z.exe" ...
2

7z.exe x foo.7z -y> NUL В моем случае работает нормально. Вы уверены, что поведение не вызвано чем-то другим, и вы не видите сообщение об ошибке из-за перенаправления вывода?

Кроме того, вы можете перенаправить вывод в файл вместо NUL и, таким образом, также исключить его из вывода.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .