цигвин:util-linuxупаковка

цигвин:util-linuxупаковка

У меня есть gnuwin32иЮФУ. И команда тоже script.exe.

Кто-нибудь знает, есть ли script.exeэквивалент для Windows, кроме Cygwin, который я не хочу устанавливать (по причинам, не имеющим отношения к данному обсуждению)?

решение1

Нет, в Windows нет эквивалента этой scriptкоманде. Поверьте мне,Я искал везде и всюду.

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

Единственное, на что вам нужно обратить внимание, это то, что некоторые программы пишут в более чем один поток. В дополнение кстандартный выход( stdout), они также могут написатьстандартная ошибка( stderr) илистандартный журнал( stdlog). Поэтому, чтобы убедиться, что вы захватиливсевывод, вам необходимо перенаправить и stdoutи stderr(в Windows stdlogавтоматически перенаправляется на stdout). В примере ниже компилятор Microsoft ( cl.exe) печатает баннер (текст заголовка) на stderr, а остальной текст справки на stdout.

C:\> cl /? > foobar.txt 2>&1

решение2

Боюсь, что копирование-вставка — единственный способ (перенаправление вывода не эквивалентно команде скрипта).

В соответствии сФорум поддержки Microsoft

Откройте командную строку cmd в оконном формате, т. е. не на весь экран...

Теперь щелкните правой кнопкой мыши на заголовке cmd promt, т.е. на синей полоске сверху, и там есть опция редактирования. Там выберите опцию пометить, т.е. редактировать->пометить,.Вы получите курсор в cmd promt, просто выберите область, которую вы хотите скопировать... затем снова перейдите в правый верхний клик по редактированию-> копировать

Теперь просто вставьте в текстовый файл, и вы получите содержимое командной строки в текстовом файле...

решение3

Насколько мне известно, нет ничего, что не относится к Cygwin; но каковы бы ни были причины, по которым вы не хотите использовать Cygwin, вы можете пересмотреть свое решение, зная, чтовы можете отделить его script.exe от cygwin и удалить ненужные части cygwin. Будет некрасиво, но работает и портативно, у меня занимает 5 МБ.

TL;DRсоздать binкаталог в любом месте и с ручной установкойutil-linuxпакет cygwin, скопируйте в него эти файлы, binа затем удалите остальную часть cygwin: bin\cyggcc_s-1.dll bin\cygiconv-2.dll bin\cygintl-8.dll bin\cygncursesw-10.dll bin\cygreadline7.dll bin\cygwin1.dll bin\script.exe bin\sh.exe

Вот и все. Далее следует намеренно очень подробное описание того, как это можно выяснить, как установить cygwin и все остальное.


цигвин:util-linuxупаковка

Команда script(страница руководства) существует для windows как нестандартная часть cygwin, называемая script.exe. Вам нужно вручную выбрать его пакет для установки, в настоящее время он находится в пакете, называемомutil-linux. (обратите внимание, что хотя это и нежелательно, технически возможно отделить script.exe от установки cygwin, если вы предоставите его зависимости)

После того, как у вас есть script.exe, вы можете записать сеанс cmd, начав script.exe -c cmd.exeи набрав exitв конце. Вы можете задать имя выходного файла с помощью, например, переключателя -a, имя по умолчанию typescriptи перезаписать.


Чтобы узнать, какой exe-файл (или другой файл) находится в каком пакете, вы можете поискать содержимое пакетов cygwin в Интернете:http://www.cygwin.com/packages/Например, найдите «script.exe».

К вашему сведению, вы можете просмотреть страницу руководства для scriptкоманды в системе Linux, используямужчинакоманду, набрав man scriptвТерминал(если у вас установлены man-страницы) или онлайнидет поискключевые слова "man script typescript".


Theкарманэээ... руководство по рюкзаку для cygwin:

о cygwin

Cygwin связывает каждый exe с его собственным .dll, поэтому требует копию этих dll в дополнение к своим exe-файлам, но в остальном может использоваться как набор обычных, родных для Windows exe-файлов. Однако стандартный способ использования cygwin — установить его через егоустановщик. Сообщается, что базовый пакет весит около 30 МБ для скачивания и 90 МБ для извлечения, но вы можете выбрать дополнительные пакеты, такие какutil-linuxдля дополнительных exe-файлов, таких как script.exe.

установка пакетов

Вы можете установить пакеты, запустив cygwinустановщик, в настоящее время называется setup-x86.exeдля x86 (ранее он назывался setup.exe. Также он иногда обновляется. Например, старый setup.exe больше не работает, потому что пути на серверах изменились; вам нужно загрузить новый). Вы переходите вперед по принципу «следующий-следующий-следующий» в установщике, пока не увидите что-то похожее на список пакетов.

Вверху нажмите опцию "держать" и вид на "Полный" если вы спросите меня. Наведите указатель мыши, чтобы увидеть подсказки с информацией о том, что это значит.

подробный способ добраться до списка пакетов

Чтобы получить список пакетов на x86, обычно делается следующее:скачатьи запустите setup_x86.exe, нажмите «Далее» для экрана приветствия, выберите «Установить из интернета» и нажмите «Далее», выберите каталог установки и нажмите «Далее», выберите временный каталог кэша пакетов и нажмите «Далее», выберите «Прямое подключение» (или что вам нужно) и нажмите «Далее», если он может загрузить список зеркал, он на самом деле в алфавитном порядке для английских названий стран (трудно поверить, но это так), вы можете увидеть это по окончаниям доменного имени (сначала .com/.net/.org, затем, например, .au, .de, .gr и т. д.). Выберите зеркало, которое, по вашему мнению, находится ближе к вам, и нажмите «Далее», если загрузка прошла успешно, вы можете увидеть список пакетов.

размер установки + портативность

Cygwin может быть установлен через его установщик, но каталог, который он создает, на самом деле портативный. Я использовал zip с 7z, извлекал и использовал его на других компьютерах с успехом.

Установка по умолчанию, как утверждается, составляет 90 МБ для извлечения и 30 МБ для загрузки. Вы можете посмотреть пример пакетов по умолчанию наэта нить набблчтобы иметь представление о том, что устанавливать в минимальную систему. Вы можете на самом деле отменить выбор этих пакетов и выбрать только, например.util-linuxпри установке, и установщик cygwin спросит вас, хотите ли вы установить зависимости (требования) util-linux тоже. Я не уверен, что отмена выбора пакетов по умолчанию все равно установит терминал mintty.exeили bash, которые удобны и обычно ожидаются средой cygwin, хотя они на самом деле не нужны для использования любого из exe-файлов cygwin.


разделение script.exe от cygwin

ПРИМЕЧАНИЕчто нецелесообразно разделять какую-либо часть установки Cygwin, не потому что это не может работать, а потому что если у вас есть более одного ex-файла, зависящего от cygwin.dll, то всякий раз, когда cygwin.dll обновляется и вы случайно создаете копию нового dll для другого ex-файла, загрузка dll может попытаться загрузить неправильный dll, например, если он находится в PATH в более ранней позиции по сравнению с другим.

Тем не менее, чтобы отделить script.exe (и потенциально удалить остальную часть cygwin) - вы можете это сделать, вы копируете его зависимости dll, но этого недостаточно. Он пытается загрузить sh.exe, даже если вокруг нет оболочек unixy, поэтому ему также нужен sh.exe, но он все равно не найдет его, если вы не поместите их в каталог под названием "bin" (который может быть где угодно, кстати). Таким образом, чтобы иметь функциональный script.exe, отделенный от cygwin, вам нужны эти файлы в этой структуре (на момент написания этой статьи):

bin\cyggcc_s-1.dll, bin\cygiconv-2.dll, bin\cygintl-8.dll, bin\cygncursesw-10.dll, bin\cygreadline7.dll, bin\cygwin1.dll, bin\script.exe, bin\sh.exe,

binКстати, каталог может быть где угодно .

Вы можете получить зависимость dll, например, с помощью плагина листинга Total Commander.fileinfo

зависимость dll через плагин Total Commander Lister "fileinfo"

решение4

Похоже, ты хочешь получить teeкоманду. Ты можешь ее получить.здесь. Tee позволяет читать из стандартного ввода и записывать в стандартный вывод и файлы.

Связанный контент