次のコマンドを使用して、DOS stdout と stderr をログファイルにパイプします。
run.exe 1> mylog.log 2>&1
私の同僚は、次の使用を主張しています。
run.exe > mylog.log 2>1
どちらが正しい?
これは Windows 7 上にあります。
次のコマンドを使用して、DOS stdout と stderr をログファイルにパイプします。
run.exe 1> mylog.log 2>&1
私の同僚は、次の使用を主張しています。
run.exe > mylog.log 2>1
どちらが正しい?
これは Windows 7 上にあります。
あなたのは正しく、同僚のは部分的に正しいです。
Windows シェルのリダイレクション オペレータは、基本的に Unix シェルのリダイレクション オペレータと同じです。>
(リダイレクト出力)演算子のデフォルトのファイルハンドルは1
stdout であるため、例のように指定する必要はありませんが、問題はありません。あるファイル ハンドルの出力を別のファイル ハンドルにアタッチするようにシェルに指示する場合 (たとえば、stderr を stdout と同じハンドルに接続する) >&
、.
ここでの同僚の例では、stdout を に正しくリダイレクトしmylog.log
ますが、stderr は という名前のファイルに入ります1
。