Перенаправьте вывод командной строки 7-Zip в / dev / null в Windows при извлечении файла .7z

7462
Peter Mounce

У меня есть команда, например, "C:\Program Files\7-zip\7z.exe" x foo.7z -yкоторая будет извлекать (с полными путями) в текущий каталог.

Но то, что он делает, чего я не хочу, - это выводить отдельные пути к stdout. Это информация, которая мне не нужна.

Однако в Windows перенаправление этого в NUL (эквивалент /dev/nullLinux) а-ля не "C:\Program Files\7-zip\7z.exe" x foo.7z -y > NULприводит к разархивированию файлов, потому что 7-Zip, кажется, распаковывает в NUL вместо того, чтобы выдвигать вывод текста команды в NUL (что мы и хотим) ).

На самом деле, эта команда работает из командной оболочки Windows (то есть, она распаковывает файлы так, как я хочу, но без записи текста на консоль), но это не происходит из- за выполнения агента TeamCity в сборщике командной строки (то есть распаковывается в NUL).

Как я могу заставить его делать то же самое в TeamCity (который выполняется как сервис)?

6

2 ответа на вопрос

7
Hello71

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

%COMSPEC% /c "%ProgramFiles%\7-Zip\7z.exe" ... 
Спасибо; это сработало (хотя я не знаю почему). Peter Mounce 13 лет назад 0
@Peter: TeamCity, вероятно, фактически выполняет его с помощью argv [... "-y", ">", "NUL"] или иным образом выполняет файл "C: \ Program Files \ 7-Zip \ 7z.exe x foo .7z ... ". Hello71 13 лет назад 0
О да; это имело бы смысл. У него есть одно текстовое поле, чтобы взять exe, и одно, чтобы взять аргументы. Peter Mounce 13 лет назад 0
2
Yaegor

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

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

У меня это хорошо работает и с консоли; он не работает нормально, когда агент сборки TeamCity (работающий как служба) выполняет команду без заголовка. Именно участие TeamCity сделало этот вопрос stackoverflow.com, поэтому я и спросил его там; к сожалению, это было перенесено, и я не знаю, как обратиться к модератору. Peter Mounce 13 лет назад 1

Похожие вопросы