============================================================ コマンドプロンプト ============================================================ .. contents:: 目次 :depth: 2 | | 現在のフォルダをエクスプローラーで開く ============================================================ :: start . | ツールの配置先を使用する ============================================================ :: set TOOLPATH=%~dp0 | ドライブまたがりのフォルダ移動 ============================================================ :: cd /D パス | | | 例) :: cd /D J:\\ | ファイルコピー ============================================================ :: cp [コピー元] [コピー先] | ディレクトリ階層だけコピー ============================================================ :: xcopy /T /E [コピー元] [コピー先] | サブディレクトリのファイルも含めてコピー ============================================================ :: xcopy [コピー元] [コピー先] /E /Y | ディレクトリ作成 ============================================================ :: mkdir [ファイルパス] | 繰り返し処理 ============================================================ :: FOR /L %変数 IN (開始,ステップ,終了) DO コマンド [コマンド パラメーター] | .. note:: セットは、ステップの量ごとに変化する開始から終了までの数列です。 たとえば、(1,1,5) は 1 2 3 4 5、(5,-1,1) は (5 4 3 2 1) という数列になります。 | | 例) abc1,abc2,abc3,...abc10までのフォルダを作成したい場合は :: for /L %%i in (1,1,10) do ( mkdir abc%%i ) | ファイルを一行ずつ処理 ============================================================== :: FOR /f "delims=" %%変数 in (ファイル名) do ( 処理(ファイルから読み込んだ文字列は「%%変数」にて使用可能) ) | .. note:: delimsには区切り文字を指定。一行まるまる読み込む場合は"delims="(指定無し) | | 標準出力と標準エラー出力の両方をファイルへ出力する ============================================================ :: コマンド > ファイル名 2>&1 | | ファイル・フォルダ削除 ============================================================ | フォルダに移動してから実行。サブフォルダも対象。 | 正規表現を使用してフォルダ削除 --------------------------------- :: for /R %i in (フォルダ名【正規表現可能】) do rd /Q /S "%i" | 正規表現を使用してファイル削除 --------------------------------- :: for /R %i in (ファイル名【正規表現可能】) do del /Q /S "%i" | サブディレクトリを含めてまるっと削除 ---------------------------------------- :: del /s /q /f パス for /D %%f in ( * ) do rd /s /q "%%f" | | ※del - /s : サブディレクトリを含める - /q : 確認しない - /f : 読み取りファイルも強制削除 | | ※for - /D : ()の中にワイルドカードが使われているときは、ディレクトリ名だけにヒットする - %%f : 変数名 | | ※rd - /s : 指定したフォルダ自体とそこに含まれるサブディレクトリやファイルをすべて削除する - /q : 確認メッセージを表示しない | | PCに登録しているファイルサーバーの権限を確認 ============================================================ :: net use | | 権限を削除する場合 :: net use \\xxx.xx.xx.xxx /delete | 環境変数確認 ============================================================ 特定のものを確認 --------------------------------- :: echo %PATH% | 全ての設定を確認 --------------------------------- :: set | 再起動 ============================================================ | リモートデスクトップで接続している端末を再起動する場合 :: shutdown -r -m \\NJKWxx -t 0 | | なお、各オプションの意味は下記の通り - -r ... 再起動 - -m ... リモート作業時のコンピュータを指定 - -t ... シャットダウンまでの時間を指定 .. warning:: 対象サーバのOSがWindowsServer2003もしくは、WindowsXPの場合、リモート接続にてスタートメニューから再起動を行うと、MSから過去にリリースされたパッチの影響で、リモート接続が出来なくなります。 | フォルダ構成 ============================================================ | tree表示 :: tree .. note:: オプションに『/f』をつけるとファイル名も表示される | IPアドレスの確認 ============================================================ :: nslookup -? 使用法 :: nslookup [-opt ...] # 既定のサーバーを使用する対話モード nslookup [-opt ...] - サーバー # 'サーバー' を使用する対話モード nslookup [-opt ...] ホスト # 既定のサーバーを使用して 'ホスト' を検索 nslookup [-opt ...] ホスト サーバー # 'サーバー' を使用して 'ホスト' を検索 | Jarファイルに格納されているファイルの閲覧 ============================================================ JAR ファイル pack.jar に圧縮されているファイルの一覧は、次のコマンドを発行することで取得できる。 :: jar tf pack.jar | フォルダ内のファイル一覧を表示する ============================================================ :: dir *.jar /B /S | \*.jar は指定なくてもいい。 | | **オプション説明** - /B : ファイル名のみ出力 - /S : サブディレクトリを含めて表示 | ファイルやコマンドの場所を検索 ============================================================ :: where <<実行コマンドなど>> | コマンドの実行したときにどこの、何のファイルが場所を探すことが出来る。 | | 例) :: C:\BL\DML08\20130917_hon>where find c:\java\gnuwin32\bin\find.exe c:\Windows\System32\find.exe c:\cygwin\bin\find.exe | ネットワーク上でファイルを実行 ============================================================ | ネットワーク上でファイルを実行しようとすると、 | 「CMD では UNC パスは現在のディレクトリとしてサポートされません」と表示され、エラーになる。 | そのため、ほかのコンピュータ上のディレクトリに「cd」するには、あらかじめネットワークドライブを割り当てておかなければなる。 | | ネットワーク割り当てコマンド :: pushd \\computer1\project1\program1 | 自動的にネットワークドライブが割り当てられ、そのディレクトリに移動する。 | | 当該ディレクトリで作業後、次のコマンドを入力すると、ネットワークドライブが解除され、元のディレクトリに戻る。 :: popd | なお、認証を行うには、たとえば次のように入力して認証のダイアログボックスを表示し、ユーザー名とパスワードを入力してください。 | :: start \\computer1\project1\program1 | | | ネットワーク上のバッチを実行する場合は、下記ではさめばOK! :: rem 相対パスを取得して一時ディレクトリへ割り当て PUSHD %~dp0 rem 上の処理を無効化 POPD - %~dp0 : ツールが配置されている相対パスを取得 | | 通信状態を確認する ============================================================ :: netstat | .. note:: オプション無しで実行可能。 | | 例) :: netstat -n 1 // 1秒おきに表示 | | **実行結果について** | .. image:: ./image/netstat.gif | .. list-table:: netstat実行結果詳細 :header-rows: 1 :widths: 30,10,60 * - 状態 - 頻度 - 意味 * - CLOSED - - - 未使用状態のTCPポート。通常これが表示されることはない * - LISTENING - ◎ - 待ち受け状態(リッスン状態)のポート。netstatに-aオプションを付けると表示される * - SYN_SENT - ○ - サーバに対して、通信開始の要求(SYN:Synchronize)を送信したが、まだそれに対する応答(ACK:Acknowledgement)を受け取っていない状態。相手が無応答のときもこの状態になる。ACKを受け取るとESTABLISHEDへ遷移する * - SYN_RECEIVED - - - クライアントからSYN要求を受け取った直後の状態。SYNに対するACKを送信するとESTABLISHEDへ遷移する * - ESTABLISHED - ◎ - TCPコネクションが確立して通信している状態。netstatでは最もよく見る状態。どちらかが終了処理を始めると、FIN_WAIT_1もしくはCLOSE_WAITへ遷移する * - FIN_WAIT_1 - - - 自分の側からFINを送信した状態。そのFINに対するACKを相手から受信すると、FIN_WAIT_2へ遷移するが、先に相手からのFINを受けるとCLOSINGへ遷移する * - FIN_WAIT_2 - - - FINに対するACKを受信した状態。相手からのFINを受信して、それに対するACKを返すと、TIME_WAITへ遷移する * - CLOSE_WAIT - ○ - 相手からのFINを受け取った状態。アプリケーションが終了すると、FINを送信してからLAST_ACKへ遷移する * - CLOSING - - - FINに対する相手からのACKを受けるとTIME_WAITへ遷移する * - LAST_ACK - - - 送信したFINに対するACK待ち状態。ACKを受け取るとCLOSEDへ遷移して終了する * - TIME_WAIT - ○ - コネクションの終了待ち状態。しばらく待ったあと、CLOSEDへ遷移して終了する