コマンドプロンプト¶
目次
繰り返し処理¶
FOR /L %変数 IN (開始,ステップ,終了) DO コマンド [コマンド パラメーター]
注釈
セットは、ステップの量ごとに変化する開始から終了までの数列です。 たとえば、(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 (
処理(ファイルから読み込んだ文字列は「%%変数」にて使用可能)
)
注釈
delimsには区切り文字を指定。一行まるまる読み込む場合は”delims=”(指定無し)
ファイル・フォルダ削除¶
フォルダに移動してから実行。サブフォルダも対象。
サブディレクトリを含めてまるっと削除¶
del /s /q /f パス
for /D %%f in ( * ) do rd /s /q "%%f"
※del
- /s : サブディレクトリを含める
- /q : 確認しない
- /f : 読み取りファイルも強制削除
※for
- /D : ()の中にワイルドカードが使われているときは、ディレクトリ名だけにヒットする
- %%f : 変数名
※rd
- /s : 指定したフォルダ自体とそこに含まれるサブディレクトリやファイルをすべて削除する
- /q : 確認メッセージを表示しない
再起動¶
リモートデスクトップで接続している端末を再起動する場合
shutdown -r -m \\NJKWxx -t 0
なお、各オプションの意味は下記の通り
- -r ... 再起動
- -m ... リモート作業時のコンピュータを指定
- -t ... シャットダウンまでの時間を指定
警告
対象サーバのOSがWindowsServer2003もしくは、WindowsXPの場合、リモート接続にてスタートメニューから再起動を行うと、MSから過去にリリースされたパッチの影響で、リモート接続が出来なくなります。
IPアドレスの確認¶
nslookup -?
使用法
nslookup [-opt ...] # 既定のサーバーを使用する対話モード
nslookup [-opt ...] - サーバー # 'サーバー' を使用する対話モード
nslookup [-opt ...] ホスト # 既定のサーバーを使用して
'ホスト' を検索
nslookup [-opt ...] ホスト サーバー # 'サーバー' を使用して 'ホスト' を検索
ファイルやコマンドの場所を検索¶
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
注釈
オプション無しで実行可能。
例)
netstat -n 1 // 1秒おきに表示
実行結果について
状態 | 頻度 | 意味 |
---|---|---|
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へ遷移して終了する |