CMDコマンドラインパイプラインコマンドの紹介
I. パイプラインコマンドとは
パイプラインコマンドは、コマンドの実行結果をフィルタリングして、必要な情報のみを残すものです。
dir コマンドがディレクトリ内のすべてのフォルダとファイルを表示する場合、パイプコマンド| findstr ""を使って、dir の結果を必要な情報だけに絞り込むことができます。
| コマンドパイプ文字
書式:第一コマンド|第二コマンド[|第三コマンド...]。
最初のコマンドの結果を2番目のコマンドの引数として使用します。これはunixでは一般的なことだと覚えておいてください。
例
dir c:\find "txt"
上記のコマンドは、C:Find all of C:\ and find TXT stringsです。
FINDの機能については、FIND /?
フォーマットの自動フォーマットパラメータを使わずに、Aドライブを自動フォーマットするとこうなります。
echo y|format a: /s /q /v:system
formatを使ったことがある人は、ディスクがフォーマットされているかどうかを確認するためにyを入力しなければならないことを知っていると思いますが、このコマンドの前にecho yと|文字が設定されています。
このコマンドの結果は、formatコマンドに渡されます
を入力すると、自動的にy
(このコマンドは危険ですので、テストするときは注意してください)
最もよく使われるのは、次のような文への出力yです。
<ブロッククオートecho y|delete *.txt /s
II. パイプコマンドの使用
1. Windows netstat ポート、プロセス占有を表示する。
// Suppose we need to determine who is occupying our port 9050
C:/>netstat -aon|findstr "9050"
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016
// See, the port is occupied by the process number 2016, continue with the following command.
C:/>tasklist|findstr "2016"
tor.exe 2016 Console 0 16,064 K
// It's clear, tor.exe is occupying your port
2. フォルダのディレクトリ構造を確認する
ツリー > list.txt
ツリー /f >リスト.txt
3. 入出力リダイレクション
echo -c // -c: 改行なし、linuxでは-n。
入出力のリダイレクトを行います。
それぞれの名前のついた実行に対して、3つのファイルが関連付けられています。標準入力ファイル、標準出力ファイル、そしてエラー出力ファイルです。
unix/linuxではどんなデバイスもファイルとして扱われるため、標準入力ファイルは実際にはキーボードになります。
標準出力とエラー出力ファイルは画面です。
> 出力リダイレクション
< 入力リダイレクション
<<入力の追加
Enter Append
ファイルディスクリプタ。
各ファイルはファイル記述子で記述することができ、システムで12個用意されており、3~9個は任意に定義することができる。0-2系の定義は以下の通りです。
0 標準入力 キーボード
1 標準出力 ディスプレイ
2 エラー出力表示
つまり、上記の3つのファイルを0-2で表現することができます。
例:cmd>file //cmdの出力は、ファイルfileにリダイレクトされます。
cmd>>file //cmd の出力は file に追加され、存在しない場合は作成されます。
cmd 1>file //cmd を実行しているシェルの標準出力を 1 として file にリダイレクトします。
cmd>file 2>&1 //cmdの出力をfileにリダイレクトし、2(エラー出力)を1(標準出力)にリダイレクトします。
2 > 1 は 1 をファイルとして扱うので、1 へのエラーリダイレクトはすべて &1 を使用しなければなりません。
cmd 2>file //エラー出力をファイルに転送する
cmd>>file 2>&1 //エラーとコマンドの出力をファイルに追加する,cmd>>file,append;2>&1,エラー送信先を指定する。
標準出力、標準入力はファイルに付加されるため、エラーとcmd出力はファイルに付加される
cmd 1>>file 2>&1 //このコマンドは、前のコマンドと同じにすることができます。
cmdfile2 //cmdの入力はfile1、結果はfile2に出力されます。
cmd<<END //cmdはENDに遭遇するまで標準入力を使用し、その後終了します。
理解する:cmdはデフォルトの標準入力を使用し、実行し、ENDに遭遇したときに追加するが、標準入力の出力は
注:linuxのシェルプログラミングの25章によると、間違って理解しようとしたのです。
これはシェルの構文です。セパレータとしてENDと解釈できます。
cmd<&m //ファイル記述子mをcmdの入力として使用する。
cmd>&m // ファイルディスクリプタ m を cmd の出力として使用する。
cmd<&- //Close standard input.
!!! 注意
1. 入力および出力ディレクトリの前にスペースを追加しないでください、さもなければ予期しない問題が発生する可能性があります
2. 0 1 2 は >> または << 方向の文字を使用できません、例: 2>>&1 エラー
パイプ文字を使ってy/nを自動入力する
職場で、cmdコマンドを起動したときにプロンプトが表示されることがあります。例えば、pscpを使用したときに、次のようなメッセージが表示されます。
キーをキャッシュに保存しますか(y/n)
毎回yかnを入力する必要があり、javaやpythonのようにcmdコマンドを呼び出すとうまくいかないので、どうすればいいかというと、パイプ記号を使って、例えば、pscpというコマンドでは、以下の方法で自動的にyを記入することが可能です。
echo y |pscp ......。
の後に操作コマンドの省略記号が続きます。
他の言語の呼び出しは、この先も問題なく動作します
CMDコマンドラインパイプラインコマンドの使用方法については、今回で終了です。CMDパイプラインコマンドの詳細については、スクリプトハウスの過去記事を検索するか、以下の関連記事を引き続き閲覧してください。
関連
-
cmdデスクトップショートカット一括作成ツール
-
Windowsでbatコマンドライン方式でIEのプロキシサーバー設定を変更する
-
bat バッチビット操作のサンプルコード
-
バッチBATスクリプトセットコマンド使用詳細(バッチハウスバッチャー)
-
Windowsの空のフォルダを検索するバッチプログラムのコード例
-
JDKの一括インストール/JREのワンクリックインストールとJava環境変数の自動設定
-
cmd.exe 共通スタートアップ・パラメーター入門
-
フォルダバット内の全ファイルの個数と合計サイズの一括統計処理
-
DOS高度活用バッチ処理チュートリアル 第6章 ifコマンドの解説
-
DOSバッチ処理応用チュートリアル 第2章 DOSループ for コマンドの解説
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
自動コード投入とプロジェクトデプロイメントのためのバッチファイルbatスクリプト
-
バッチ関数の効率的な代替アプリケーション(コールフリー)
-
IPアドレス自動設定一括コード共有
-
Windowsでバッチファイル.batを使用して古いファイルを削除する。
-
DOSのバッチ構文における%~dp0などの拡張変数について解説します。
-
DOSコマンドラインでインターネットに接続せずに無線LANをオンにする解決策
-
certutilを使ったHex2BinとBase64の暗号化方式
-
DOSバッチコマンド For loopコマンド詳細説明
-
FTPファイル一括アップロード
-
shutdownコマンドによるリモートシャットダウンとリブート