Linuxにスクリプトコマンドに相当するWindowsがありますか?[複製]


8

この質問にはすでに答えがあります:

私が持っているgnuwin32SFU。どちらにもscript.exeコマンドはありません。

script.exeCygwin以外のWindowsに相当するものがあるかどうか、だれでも知っていますか?


4
また、script.exeとは何ですか?リンクを提供してください。
ライフル

シェルスクリプトを許可するBashのようなものですか?
Isxek

2
おいおい!質問者は、xeが同等のWindowsを探しているというコマンドが何であるかを質問のタイトルで明確述べていscriptます。それはまさにその名前のLinuxコマンドであり、そのマニュアルページはただman script離れているだけです。
JdeBP

元の投稿がスクリプトコマンドのみに焦点を当てていたなら、私はあなたに同意したでしょう。
マーク

@マーク、どの質問ですか?どちらの質問も、Windowsバージョンのscriptコマンドを求めています。
Synetech

回答:


5

いいえ、scriptコマンドに相当するWindowsはありません。私を信じて、私は高低を検索しました

いずれの場合でも、リダイレクトを使用して少なくとも半分を達成できます。実行中に出力は表示されませんが、後でファイルで表示できます。残念ながら、これは妥協点ですが、ピンチのときにそれを行うことができます。

注意する必要があるのは、一部のプログラムが複数のストリームに書き込むことだけです。標準出力stdout)に加えて、標準エラーstderr)または標準ログstdlog)に書き込むこともできます。だから、あなたがキャプチャしていることを確認するために、すべての出力を、あなたは両方をリダイレクトする必要があるstdoutstderr(Windowsでは、stdlog自動的にリダイレクトされますstdout)。以下の例では、Microsoftコンパイラー(cl.exe)はバナー(ヘッダーテキスト)をstderrに、残りのヘルプテキストをに出力しstdoutます。

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

これは、このようなプログラムをWindows用に作成することは不可能だからです。
JdeBP

なぜだか分かりません。提供されたコマンドプロンプトでは(少なくとも直接)不可能な場合がありますが、機能を提供するコンソールプログラムを簡単に作成することを妨げるものは何もありません。
Synetech

違う。そこに何かがある。すでにそれが何であるかを説明しました。
JdeBP

3

コピーペーストが唯一の方法だと思います(出力のリダイレクトはスクリプトコマンドに相当しません)。

Microsoftヘルプフォーラムによると

全画面ではなく、ウィンドウ形式でcmdプロンプトを開きます...

ここで、cmdプロンプトの頭、つまり上部の青い帯を右クリックすると、編集のオプションがあります。そこで、オプションマーク、つまり編集->マークを選択します。cmdプロンプトにカーソルが表示されます。コピーする領域を選択するだけで、右上の[編集]-> [コピー]をクリックします

テキストファイルに貼り付けるだけで、テキストファイルにcmdプロンプトの内容が表示されます...


それがまさに今私がやっている方法です。それでも...より良い方法を望んで
マーク

1
@markはそこからコピー/ペーストするより良い方法です。「クイック編集モード」が必要です。
barlop

もちろん、クイック編集モードを有効にしています。
マーク

3

必要なことを行うための回避策があります。

cygwinユーティリティパッケージ(それを見つけるためのgoogle cygwin)には、実際にスクリプトコマンドがあります。そのパッケージをインストールする場合、PATH変数を適切に変更し、script -c cmdと入力すると、DOSシェルが起動し、typescriptという名前のファイルで入力と出力がキャプチャされます 。スクリプトコマンドにはいくつかのオプションがあります。(ドキュメントを見つけるための読者のための演習として残しておきます:)

Cygwinはコンピューターに多くのものをインストールします。シンプルに保ちたい場合は、上記のようにteeコマンドをインストールし、cmd |と入力します。選択したファイル名。これにより、入力と出力がfilename-of-your-choiceにキャプチャされます。

次に、2番目のソリューションのログを示します。ログに記録された入力と出力はサブシェルにあることに注意してください。(私はスクリーンショットを投稿したでしょうが、このサイトは私を許可しません-私は十分に話していない)。

Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft
Corporation.  All rights reserved.

C:\Users\David>echo topshell topshell

C:\Users\David>doskey /h echo topshell doskey /h

C:\Users\David>cmd | tee log.txt Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\David>echo subshell subshell

C:\Users\David>doskey /h echo subshell doskey /h

C:\Users\David>exit

C:\Users\David>doskey /h echo topshell doskey /h cmd | tee log.txt
doskey /h

C:\Users\David>type log.txt Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\David>subshell

C:\Users\David>echo subshell doskey /h

C:\Users\David> C:\Users\David>

両方のソリューションを試しました。2番目(cmd | tee ...)は、矢印キーでコマンドを呼び出すことができるため、より優れています。最初のソリューション(script.exe)はサポートしていません。


ここでcygwinのパッケージで検索:cygwin.com/packagesは現在script.exeであるのutil-Linuxのパッケージ。scriptドキュメント:linux.die.net/man/1/script
n611x007

私は「読者に運動として残す」ことを勧めない。「スクリプト」という言葉は使いすぎなので、知識がなければ検索エンジンで多くの間違った結果を得る可能性があります。私のキーワードは、「typescript」によって非常に具体的になるため、「man script typescript」でした。そして、manのためのLinuxのコマンドであること、マニュアルページ(あなたのコンピュータシステムにインストールされているマニュアルを持っている場合)。またman、知っている場合は3文字だけですが、知らない場合は未知の方向の思考ターゲットのまったく未知の領域であることにも注意してください。「
演習

1

teeコマンドが必要なようです。こちらで入手できます。Teeでは、標準入力から読み取り、標準出力およびファイルに書き込むことができます。


1

私が知っている非シグウィンはありません。しかし、cygwinを必要としない理由が何であれ、そのscript.exeをcygwinから分離し、cygwinの不要な部分を削除できることを認識して、再考することができます。ugいですが、動作し、ポータブルで、5MBかかります。

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のインストール方法、その他すべてに関する意図的に非常に詳細な説明に従います。


cygwin:util-linuxパッケージ

scriptコマンド(マニュアルページでは)と呼ばれるcygwinのデフォルト以外の一環として、Windowsのために存在しますscript.exe。インストールするパッケージを手動で選択する必要があります。現在はutil-linuxというパッケージにあります。(注意が必要ではありませんが、依存関係を指定すると、技術的にはcygwinインストールからscript.exeを分離できることに注意してください)

あなたが持ってたらscript.exe、あなたが開始することで、CMDセッションを記録することができますscript.exe -c cmd.exeし、typeing exit終わり。たとえば、出力ファイル名を設定できます。-aスイッチは、デフォルトの名前があるtypescriptと上書きします。


どのexe(または他のファイル)がどのパッケージにあるかを調べるには、cygwinのパッケージのコンテンツをオンラインで検索できます:http ://www.cygwin.com/packages/たとえば、「script.exe」を探します。

FYI、あなたはのマニュアルページを参照してくださいすることができますscript使用して、Linuxシステムでコマンドのman入力して、コマンドをman scriptするターミナル(あなたがインストールさmanページを持っている場合)、またはオンラインで検索キーワード「男スクリプトtypescriptですが」。


ポケット err .. cygwinのバックパックガイド:

cygwinについて

Cygwinはすべてのexeを独自の.dllにリンクするため、exeファイルに加えてこれらのdllのコピーが必要ですが、それ以外は通常のWindowsネイティブexeファイルのコレクションとして使用できます。ただし、cygwinを使用する標準的な方法は、インストーラーを使用してインストールすることです。基本パッケージのダウンロードは約30MB、抽出は90MBと報告されていますが、のような追加のexeにはutil-linuxなどの追加パッケージを選択できますscript.exe

パッケージのインストール

現在x86で呼び出さているcygwin インストーラーを実行してパッケージをインストールできますsetup-x86.exe(以前は呼び出されていましたsetup.exe。また、時々更新されます。たとえば、サーバーでパスが変更されたため、古いsetup.exeが機能しなくなりました。新しいものをダウンロードします)。パッケージリストに似たものが表示されるまで、インストーラで次、次、次の方法で進みます。

上部にあるオプション " keep "をクリックして、私に尋ねたら" Full "に表示します。これらの意味についての情報ツールチップをマウスでポイントします。

パッケージリストにアクセスする詳細な方法

x86で通常行うパッケージリストを取得するには、ダウンロードして開始setup_x86.exeし、ようこそ画面で[次へ]をクリックし、[インターネットからインストール]を選択して[次へ]をクリックし、インストールディレクトリを選択して[次へ]ディレクトリをクリックし、[次へ]をクリックして[直接接続](または必要なもの)を選択し、[次へ]をクリックします。ミラーリストをダウンロードできる場合は、実際には英語名の国のアルファベット順(生きていることは難しいがtrue)ドメイン名の末尾から(.com / .net / .org、次に.au、.de、.grなど)。自分に近いと思われるミラーを選択し、[次へ]をクリックします。ダウンロードに成功すると、パッケージリストが表示されます。

インストールサイズ+移植性

Cygwinはインストーラーでインストールできますが、Cygwinが作成するディレクトリは実際には移植可能です。以前は7zでzip圧縮し、他のコンピューターで解凍して使用していました。

デフォルトのインストールは、90MBが抽出され、30MBがダウンロードされると主張されています。このナブルスレッドのデフォルトパッケージの例から、最小限のシステムに何をインストールするかがわかります。実際にこれらのパッケージの選択を解除し、たとえばを選択するだけです。util-linuxをインストールすると、cygwinインストーラーはutil-linuxの依存関係(要件)もインストールするかどうかを尋ねます。デフォルトパッケージの選択を解除してもmintty.exe端末またはがインストールbashされるかどうかはわかりませんが、これらはcygwin exeを使用するために実際には必要ではありませんが、cygwin環境で通常使用されると便利です。


script.exeとcygwinの分離

NOTEあなたがそれはあなたが複数のEXEファイルがcygwin.dllにに頼るのcygwin.dllが更新される、任意の時間を持っているのであれば動作しないことができないので、cygwinのインストールのいずれかの部分を分離し、あなたが作るために起こることunadwisedであることexeの別の1つに対する新しいDLLのコピー、DLLロードは、たとえばそれが他と比較して前の位置のPATHにある場合、間違ったDLLをロードしようとする場合があります。

つまり、script.exeを分離する(および潜在的にcygwinの残りを削除する)には、それを行うことができます。dllの依存関係をコピーしますが、十分ではありません。周囲にunixyシェルがなくてもsh.exeをロードしようとするため、sh.exeも必要ですが、「bin」というディレクトリ(どこでもかまいませんが、ところで)。したがって、機能的なscript.exeをcygwinから分離するには、この構造内にこれらのファイルが必要です(この記事の執筆時点)。

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

binディレクトリには、途中で、どこでも可能

たとえば、Total Commander listerプラグインfileinfoを使用して、dllの依存関係を取得できます。

Total Commander Listerプラグイン「fileinfo」を介したdll依存関係

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.