トップページ
ひらく | たたむ | ページトップ
↓マウスで反転選択した文字を検索
CommandPrompt
   
ページ内検索 ページ外検索
検索したい文字を入力して
ENTERを押すと移動します。
\n
[ トップページ ]
[ ____CommandPrompt ] [ ____JScript ] [ ____MySQL ] [ ____Cygwin ] [ ____Java ] [ ____Emacs ] [ ____Make ] [ ____Perl ] [ ____Python ] [ ____OpenGL ] [ ____C# ] [ ____StyleSheet ] [ ____C++ ] [ ____Winsock ] [ ____Thread ] [ ____VisualStudio ] [ ____C ] [ ____Win32API ] [ ____Lua ] [ ____PhotoShop ]
ヘッダ検索
___

■ リファレンス(Reference)




___

■ カテゴリ別

___

■ FileSystem

REFERENCE attrib REFERENCE copy REFERENCE mkdir REFERENCE dir REFERENCE del REFERENCE rename REFERENCE xcopy REFERENCE mklink
___

■ network

REFERENCE net use
___

■ utility

REFERENCE chkdsk REFERENCE mem
___

■ commmadprompt

REFERENCE title REFERENCE color REFERENCE cls
___

■ bat.program

REFERENCE pause REFERENCE setlocal REFERENCE exit REFERENCE goto
___

■ process

REFERENCE tasklist REFERENCE taskkill
___

■ assoc

SYNTAX assoc EXTENSION DESC ファイルを拡張子ごとに実行プログラムと関連づける。 現在の対応一覧をみる
    assoc
.htm ファイルのプログラムを見る。
    assoc  .htm
.htm ファイルのプログラムを見る。
    assoc  .htm=Chrome
___

■ ftype

DESC ファイル・タイプ名に対して、起動するコマンドを定義する。 REF http://www.atmarkit.co.jp/fwin2k/win2ktips/841ftypes/ftypes.html FTYPE [ ファイル タイプ[=[コマンド文字列]] ]
  ftype  "C:\Program Files >x86\Google\Chrome\Application\chrome.exe" -- "%1"  
___

■ attrib

SYNTAX attrib DESC ファイル属性を変更する
    // Read Only
    attrib +R foo.txt

    // 解除
    attrib -R foo.txt
___

■ call

SYNTAX call batfile DESC batch を他の batch から呼び出す 呼び出された側のバッチの処理が終わると 元の呼び出した側のバッチファイルへ制御をもどすことができる。 POINT call を利用すると呼び出し元のプロセスに戻ってくる。 call を利用しないで bat をよぶと 呼び出された側のバッチファイルが終了時点でとまり元のバッチに戻らない。
   :: foo.bat を実行して、さらに処理をつづける
   call foo.bat

   :: call を利用しないと, foo.bat の終了時点でとまる
   :: 元の batch に制御が戻れない
   foo.bat

同じPROCESSで実行される "start" は 別プロセスで実行される

    // TaskManager > [プロセス] でみると確認できる
    
    :: 別 Process で起動 ( cmd.exe が起動して test.bat を処理する )
    start test.bat


    :: 同一プロセスで実行
    call test.bat

___

■ clip . clipboard . クリップボード

DESC stdout への出力を クリップボードにコピーする。
    dir | clip
___

■ choice.dialog . ダイアログ

Yes / No をダイアログする
___

■ cd(chdir)

SYNTAX cd [op] dir DESC Directory の移動 OP D: path に Drive が含まれる場合は, drive も変更.
    C:\test> chdir /D d:\test

    :: 相対で移動
    c:\> cd WINDOWS


    :: 絶対パスで指定 ( 拡張機能 ON ならば Space は区切り文字でない )
    c:\WINDOWS> cd c:\Documents and Settings

    :: OFF なら quot する ( ややこしい )
    c:\WINDOWS> cd "c:\Documents and Settings"
    
___

■ cmd

DESC cmd( Interpreter )を ChildProcess として起動する ProcssExplorer で見ると 階層化するのが見える OP k : Boot 時にコマンドをフック c : コマンドのみ実行をして Interpreter を終了 POINT 起動設定をしておく
    すべてのプログラム > アクセサリ > CommmandPrompt > Property 

    各タブで設定
  
     Color
     Size
     WorkingDirectory



    :: CodePage 指定
    %SystemRoot%\system32\cmd.exe /f:on /k "chcp 65001"

    :: "D:\test" を CurrentDirectory にする
    %SystemRoot%\system32\cmd.exe /f:on /k "D: && cd D:\test"

    :: echo してみる
    %SystemRoot%\system32\cmd.exe /f:on /k "echo aaa && echo bbb"

    :: telnet を起動する
    %SystemRoot%\system32\cmd.exe /f:on /k "telnet && open localhost"
    :: HELP
    cmd /?

    :: Help マニュアルをつくる
    cmd /? > cmdhelp.txt

    :: Interactive にしないようにするためには
    :: 任意の App も起動できる( bg として )


    :: /c /k は最後に指定する
    ::   残りの文字を CommandLine としてみるため


    :: BOOT 時に指定した command を実行する
    cmd /K echo "foobar"


    :: 指定した文字列を実行して終了する
    ::
    cmd /C mdkir foobar;
    cmd /C "`cygpath -w /test/doc/doc.ods`"

    :: cmd /c は bat を実行するのと同じ
    test.bat




    :: bat file を CommandLine 上で指定するのは
    :: 現在の Interpreter で順次コマンド実行するのと同じ

    type test.bat
    echo test
    C:
    cd c:\

    :: 実行する
    test.bat

    :: RET:
    test
    C:\>        
    

    ::test.bat    
    mkdir foobar;
    

___

■ cls

SYNTAX cls DESC プロンプト画面を clear する
___

■ color

DESC Console の色を指定する 2 桁の 16 進数で指定する SYNTAX color BGFG
    :: BG: 黒  FG 白
    color 0F

    :: 元に戻す
    color
___

■ cscript

SYNTAX CScript scriptname.ext [op] [arg] DESC 指定した Script を Console mode で実行する OP B : Batch Mode で実行 X : MS Debugger がインストールされていればデバッガでスクリプトを実行 test.js

    // CScript が実行すると STDOUT へ出力
    WScript.echo( "test" );
    // Silent Mode 
    // RET:  test
    CScript /NoLogo "d:\test\dust\test.js"


    // Batch mode では何も出力されない
    CScript /NoLogo /B "d:\test\dust\test.js"

Cygwin から実行
    // RET: TEST
    CScript /NoLogo "d:\test.js" | tr [:lower:] [:upper:]


batch.js
    // Batch Mode では, 何も出力されない
    WScript.echo( "start" );

    // batch では ここでとまる
    foobar;

    sh = new ActiveXObject( "WScript.shell" );
    WScript.echo( "end" );
___

■ chkdsk

SYNTAX chkdsk [op] DESC ディスクをチェックし状態を表示する 発見したエラーの修復も可能

    :: 不良セクタを見つけ,読み取り可能な情報へ回復
    chkdsk /R
    chkdsk /F

___

■ chcp

SYNTAX chcp codepage DESC Change CodePage CommandPrompt( terminal )の文字コードを変更する ApacheやSubversionなどUTF-8で出力するアプリをコマンドプロンプトから使うと メッセージが文字化けするときに変更する
     437      IBM437        OEM United States
     932      shift_jis     ANSI/OEM Japanese; Japanese (Shift-JIS)
     1200     utf-16        Unicode UTF-16, little endian byte order (BMP of ISO 10646);
                            available only to managed applications
     20127    us-ascii      US-ASCII (7-bit)
     20932    EUC-JP        Japanese (JIS 0208-1990 and 0121-1990)
     50220    iso-2022-jp   ISO 2022 Japanese with no halfwidth Katakana;
                            Japanese (JIS)
     50222    iso-2022-jp   ISO 2022 Japanese JIS X 0201-1989;
                            Japanese (JIS-Allow 1 byte Kana - SO/SI)
     51932    euc-jp        EUC Japanese
     65001    utf-8         Unicode (UTF-8)
    :: UTF-8
    chcp 65001

    :: SJIS
    chcp 932

    chcp 65001
    type utf16.txt > utf8.txt

___

■ copy

SYNTAX cp src dst
___

■ date

SYNTAX date [op] DESC 日付を取得する
    :: 2009/06/17
    date /t 
___

■ del

SYNTAX del [op] [File ...] del [op] [Directory ...] DESC 指定ファイルを消去 指定ディレクトリ内のファイルを消去 OP P : Prompt を消す前に表示 S : SubDirectory も含めてすべての指定ファイルを削除 A : Attribute 消すファイルの属性を指定する

    :: CurrentDirectory のファイルをすべて消去
    :: ( SubDirectory は検索されない )
    del /P *

   :: ".txt" ファイルをすべて削除
    :: ( SubDirectory も対象 )
    del /S /P *.txt

    :: すべてのファイルを削除
    del /S *.jpg  *.png  *.htm *.css

    :: 隠しファイルを消す
    del /A:H c:\pagefile.sys

    :: つけないと "ない" といわれる
    del c:\pagefile.sys


  WARNING
    Directory 自身は削除できない
    "rmdir" を使う

    rmdir Directory

___

■ dir

SYNTAX dir [op] DESC ディレクトリのファイルの一覧を表示
    :: C:\ のファイルを表示
    dir C:\

    :: CurrentDirectory を表示
    dir


    :: 所有者を表示
    dir /Q
    
    
    :: File名のみの Short 形式で表示
    dir /w    

    
    :: Wildcard で指定する
    dir *.txt


    :: File名のみ表示
    dir /B

    
    :: すべての種類( 隠しファイルも含めて )
    dir /A

    :: ソートする。
    dir /O*

    :: 変更日時でソート
    dir /OD
    
    
    
    
___

■ echo

SYNTAX echo [message] echo [ON|OFF] DESC Message を表示する
  :: echo の ON|OFF をきりかえる
  
    :: ON にする
    echo ON

    :: OFF にする
    echo OFF

    :: 現在の設定をみる
    echo
  
  :: 変数が空のときの対策 [ . ] をつける
  echo. %tmp%

___

■ expand . unexpand . tabfy

タブをスペースに変換する。
    expand  test.txt
___

■ exit

SYNTAX exit [/B] [ExitCode] DESC Script, Interpreter を終える バッチ処理を途中で終えたいときに便利
    :: bat を途中で終了する
    if %ERRORLEVEL% == 1 (
      exit /B
    )
POINT /B をつけないとインタープリタ自体が閉じる コマンドプロンプトを閉じないようするには /B をつけてバッチスクリプトを中断する。

    :: main.bat
    echo start main.bat

    :: ここで バッチ全体 が終わってしまう
    call sub.bat

    echo end main.bat
    :: sub.bat
    exit
___

■ FC

SYNTAX FC fileA fileB DESC File Compare ファイルを比較する
    :: 結果 もかえる
    fc foo.txt bar.txt
___

■ find.findstr.grep

指定した文字列のみを抽出する findstr は正規表現を使った検索ができる。
  type test.txt | findstr "test"
  tasklist   |  findstr  iexplore
___

■ goto

SYNTAX goto label DESC label の行に処理を移動する。

    goto error

    :: 移動する側の label には : から始める。名前は任意の文字列。
    :error 
___

■ help

SYNTAX help DESC コマンドリファレンス
___

■ mem

DESC メモリ使用状況をチェック SYNTAX mem
  :: メモリ使用状況をはきます
  mem

___

■ mkdir

SYNTAX mkdir [Drive:]Path DESC ディレクトリを作成する

    :: C:/foo をつくる
    mkdir c:\foo


    :: 再帰的 につくってくれる
    ::    ( 拡張機能が ON のとき ) -> Default ON
    mkdir c:\oya\ko\mago


    :: 拡張機能 を ON にする
    cmd /e:on


    :: OFF にすると 作成できない 
    cmd /e:off

    :: ディレクトリまたはファイルを作成できません
    mkdir c:\oya\ko

___

■ mklink

SYNTAX mklink link target DESC SymbolicLink を作成
    :: d:/tmp  への shortcut を test という名前で作成
    mklink /d  test  d:\tmp

___

■ net use . NetworkDrive

SYNTAX NET USE [デバイス名 | *] [パスワード | *] [/home] DESC 別PC( ファイルサーバなど )の共有フォルダを 自分の PC のドライブに割りあてる

  :: mount を自動化する

  ::  hostname\dir を K: としてマウント
  net use K: \\hostname\dir password /user:username 

  WARNING 
    Driveletter の後は : をつけること

  :: BAD  
  net use K \\hostname\dir password /user:username 
  :: OK
  net use K: \\hostname\dir password /user:username 


  :: mount を 消す
  net use z: /DELETE


  :: コンピュータ名 "mypc""share" を K: にマッピングする
  net use K: \\mypc\share


  :: 現在マッピング接続しているデバイスの一覧を表示
  net use  
  
  ステータス  ローカル名 リモート名                ネットワーク名
  -------------------------------------------------------------------------------
  OK           K:        \\mypc\share         Microsoft Windows Network

___

■ tracert . traceroot

指定したホストまでの経路を表示する。
    tracert   www.google.com
家の PC では PrivateAddress であるルーターに最初に通信する。
      1    < 1 ms    < 1 ms    < 1 ms  192.168.24.1

    ISP に接続する
      1    < 1 ms    < 1 ms    < 1 ms  xxx.xxx.xx.x
___

■ net localgroup

SYNTAX net localgroup DESC PC local の group を表示する

   \\host のエイリアス

   -------------------------------------------------------------------------------
   *Administrators
   *Backup Operators
   *Guests
   *HelpServicesGroup
   *Network Configuration Operators
   *Power Users
   *Remote Desktop Users
   *Replicator
   *Users
Administrators でできること
  
     Local User( Account )作成
    



___

■ net user . UserList AccountList

SYNTAX net user DESC user の一覧を表示 Administrator は System 標準の user Administrators は Group 名 POINT user ごとに 細かい Permission 制御をする Guest は アカウントをもたない来客用のアカウント。
    Tool > FolderOption > 簡易ファイルの共有を OFF にする
   \\host のユーザー アカウント

   -------------------------------------------------------------------------------
   Administrator            ASPNET                   Guest                    
   HelpAssistant            test                     sshd                     
   SUPPORT_388945a0                                                

___

■ net(start|stop)

DESC Service を制御する
  // Tomcat を停止する
  net stop "Apache Tomcat"

  // Tomcat 起動する
  net start "Apache Tomcat"
___

■ netsh


    :: fire wall の状態をみる
    netsh firewall show stat
___

■ nbtstat

SYNTAX nbtstat [-a RemotePC] [-A IpAddress] DESC プロトコルの統計情報と NBT (TCP/IP 上の NetBIOS) を使う現在の TCP/IP 接続を表示
    nbtstat -a 192.168.0.2
        
    ローカル エリア接続:
    Node IpAddress: [192.168.0.2] Scope Id: []

       NetBIOS Remote Machine Name Table

       Name               Type         Status
    ---------------------------------------------
    hostname < 00>        UNIQUE      Registered 
    WORKGROUP      < 00>  GROUP       Registered 
    hostname < 20>        UNIQUE      Registered 

    MAC Address = XX-XX-XX-XX-XX-XX


    :: 各名前の IP アドレスを提供する NetBIOS 名キャッシュの内容を一覧表示
    nbtstat -c

    ローカル エリア接続:
    Node IpAddress: [192.168.0.2] Scope Id: []
        No names in cache


    :: NetBIOS 名キャッシュからすべての名前を除去した後LMHOSTS ファイルを再読み取り
    :: Windows ネットワークの名前解決統計情報の一覧を表示
    nbtstat -R

    Successful purge and preload of the NBT Remote Cache Name Table.


___

■ pause

SYNTAX pause DESC 停止して prompt 状態にする
___

■ reg

SYNTAX reg subcommand key [opt] reg query KEY [/v VAL | /ve] [/s] reg add KEY [/v VAL] [/t TYPE] [/d DATA] [/f] DESC レジストリの編集、値の参照をする。 POINT Key とは Directory のこと Entry とは 値のこと 5 つの ROOT Key からなる
  // SubKey 追加
  reg add hkcu\test


  // SubKey 削除
  reg delete hkcu\test /f

  // Key 以下のすべてを Query
  //
  reg query hkcu\Software\CDDB  

  // Entry のみを Query
  reg query hkcu\Software\CDDB  /v xxx

  // Key を追加
  //
  reg add hkcu\Software\test /f

  // 値を設定
  //    Windows の Baloon Point を OFF にする
  //
  reg add hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced 
      /v EnableBalloonTips /t REG_DWORD /d 0 /f  
  
___

■ ren(rename)

SYNTAX ren [DRIVE:][PATH]src dst DESC ファイル名を変更する WARNING 変更後のパスの指定はできない。名前だけを指定する
    :: BAD
    ren  c:/src.txt   c:/dst.txt

    ren  c:/src.txt   dst.txt
___

■ robocopy

SYNTAX robocopy [OPT] src dst DESC リモートのファイル・サーバ同士でフォルダを同期させる。 rsync のウィンドウズ版 POINT 特定のディレクトリのバックアップに利用できる。
    robocopy c:\src  d:\dst
コピーするファイル名をパターンマッチさせる
    robocopy  c:\src  d:\dst   *.txt
    robocopy  c:\src  d:\dst   *.txt   *.jpg
完全にミラーリング(同期)すると src にないファイルは dst からも削除される

    robocopy /mir  c:\src  d:\dst
ログを制御する
    ::  進行状況をオフにする
    robocopy  /NP   c:\src  d:\dst 

___

■ sc

SYNTAX sc [HOST] COMMAND [NAME] [KEY= VAL] DESC サービスのコントロールをする。
    // サービス一覧をみる
    sc query

    // 停止する
    sc stop Tomcat6

    // 開始する
    sc start Tomcat6
  WARNING
    KEY= VAL は sace をあけること

    sc config サービス名 DisplayName= "DISPNAME"

    // Tomcat を登録 ( 表示されるのは "Apache Tomcat 6.0" )
    sc create Tomcat6.0 binPath= "D:/tom/bin/tomcat6.exe //RS//Tomcat6" DisplayName= "Apache Tomcat 6.0"

    // 削除
    sc delete Tomcat6.0
___

■ schtasks

DESC Schedular の設定をする 実行できるのは 管理者のみ WARNING login usr account の影響をうける



  // 毎朝 4:00 にバックアップ・コマンドを起動
  schtasks /create /tn "Backup" /tr c:\windows\backup.cmd /sc daily /st 04:00:00

  // listup
  schtasks /query

  // 削除する
  schtasks /delete /tn "Backup"

  // prompt なしで削除
  schtasks /delete /f /tn "test"
  schtasks /delete /f /tn "mus"

  // password 指定ですること
  schtasks /create /tn "test" /S \\HOSTNAME /U USR /P PASSWORD /tr notepad /sc daily /st 04:00:00





  :: 開始時間 ( Time == st )
  ::
  :: 周期 ( Cycle == sc )
  ::  毎日 22 時 
  schtasks /create /tn "test" /tr d:\test.bat /sc daily /st 22:47:00







 :: 変更  test


  mv "C:/WINDOWS/Tasks/Backup A.job" "C:/WINDOWS/Tasks/Backup test.job"

___

■ subst

SYNTAX subst DRIVE_LETTER: PATH DESC 任意のディレクトリにドライブレターを割り当てる
    :: d:\test を F Drive にマップ
    subst F: d:\test\ 

    :: 仮想ドライブを 削除
    subst F: /d
___

■ set

SYNTAX set [VAR=[VALUE]] DESC 環境変数 を設定 削除する
    :: 現在の環境変数を LISTUP
    set

    :: 変数をセット
    set var=value

    :: 変数を展開
    set %var%

    :: 再度設定する
    set var=value2
    

WARNING
    :: "" はいらない
    BAD
      set var="Program Files"
    OK
      set var=Program Files
___

■ sleep

sleep コマンドはないため, timeout を利用する。 REFERENCE timeout
___

■ touch

  copy  /b  test.txt  +,,
___

■ sort

  sort   test.txt

  sort   /R  test.txt

stdin から受け取る
  dir /B  | sort
___

■ where

PATH の通った場所から指定した実行ファイルのパスを探す。
  where  sort

  where  ftp
___

■ systeminfo

SYNTAX systeminfo DESC system 情報を表示
ホスト名:               xxx
OS 名:                  Microsoft Windows XP Professional
OS バージョン:          5.1.2600 Service Pack 2 ビルド 2600
OS 製造元:              Microsoft Corporation
OS 構成:                スタンドアロン ワークステーション
OS ビルドの種類:        Uniprocessor Free
登録されている所有者:   xxx
登録されている組織:     
プロダクト ID:          76494-OEM-0011903-00116
最初のインストール日付: 2007/06/10, 22:29:56
システム起動時刻:       0 日、0 時間、53 分、40 秒
システム製造元:         Matsushita Electric Industrial Co.,Ltd.
システム モデル:        CF-T5KW4AXR
システムの種類:         X86-based PC
プロセッサ:             1 プロセッサインストール済みです。
                        [01]: x86 Family 6 Model 14 Stepping 8 GenuineIntel ~787 Mhz
BIOS バージョン:        PTLTD  - 6040000
Windows ディレクトリ:   C:\WINDOWS
システム ディレクトリ:  C:\WINDOWS\system32
起動デバイス:           \Device\HarddiskVolume1
システム ロケール:      ja;日本語
入力ロケール:           ja;日本語
タイム ゾーン:          N/A
物理メモリの合計:       502 MB
利用できる物理メモリ:   69 MB
仮想メモリ: 最大サイズ: 2048 MB
仮想メモリ: 利用可能:   2004 MB
仮想メモリ: 使用中:     44 MB
ページ ファイルの場所:  C:\pagefile.sys
ドメイン:               HOME
ログオン サーバー:      \\xxx
ホットフィックス:       222 ホットフィックスがインストールされています。

ネットワーク カード:    2 NIC(s) インストール済みです。
                        [01]: Realtek RTL8139/810x Family Fast Ethernet NIC
                              接続名:    ローカル エリア接続
                              DHCPが有効 :  はい
                              DHCP サーバー:  192.168.0.1
                              IP アドレス
                              [01]: 192.168.0.2
                        [02]: Intel(R) PRO/Wireless 3945ABG Network Connection
                              接続名:    ワイヤレス ネットワーク接続
___

■ setlocal.endlocal

DESC setlocal 〜 endlocal 間で設定, 変更した環境変数をバッチファイル内のみ有効にする
    :: env.bat ---------------------------
    
    set VAR_GLOBAL=test
    echo %VAR_GLOBAL%

    ::  ---------------------------
    

    :: CommandPrompt から env.bat を実行
    cmd> env.bat


    :: 環境変数リストをみると VAR_GLOBAL=test とある
    set

    :: setlocal, endlocal までの環境変数をバッチファイル内のみ有効にする

    :: env.bat ---------------------------
    setlocal

    :: VAR_LOCAL はバッチファイル内のみ有効
    set VAR_LOCAL=aaa
    echo %VAR_LOCAL%

    :: ここまで Local 変数にする
    endlocal


    :: ここからは Global 
    set VAR_GLOBAL=test
    echo %VAR_GLOBAL%

    ::  ---------------------------

    cmd> env.bat

    :: bat を終えると VAR_LOCAL は未定義にもどる
    echo %VAR_LOCAL%


    :: こっちは定義
    :: RET: bbb
    echo %VAR_GLOBAL%


POINT 一時的に上書きする

    :: 一時的に PATH を c:\ に限定する

    setlocal
    path=C:\
    ping 65.155.232.10
    endlocal

不用意に変数を上書きしないよう setlocal を bat の Template にしとくといい
    setlocal

    :: 3 つとも bat 内ローカル
    set a=1
    set b=2
    set c=3

    :: endlocal はファイルの最後に暗黙的に呼ばれるため, かかなくても OK

WARNING これいれると, この後で定義した変数が展開されない可能性あり setlocal ENABLEDELAYEDEXPANSION
___

■ start

SYNTAX start [/B] [title] [/d path] [/i] [/min | /max] [/separate | /shared] file DESC ファイルパスを指定すると,拡張子に応じたアプリケーションを起動する ( アイコンをダブルクリックをすることと同じ ) 実行中のコマンドプロンプトとは別のウィンドウを開き 指定されたコマンド, プログラムを実行します 起動した新たなコマンドプロンプトは 起動元のコマンドプロンプトの環境変数, カレントディレクトリが引き継がれる ■ WARNING WARNING WARNING 以下の表記は問題があるかもしれない。
  start  /B   "D:/work/pro/win32/fw/Debug/fw.exe"
start の対象はこんなもの

     Directory

    :: バッチファイル
     xxx.bat   

    :: 実行ファイル
     exe  

      
      :: 32bit GUI アプリケーション
       xxx.exe



    :: 任意のファイル
     file 

Windowsプログラムが指定すると(regedit、calc など) 同じプロセスで実行される 実行されたプログラムの動作に関係なく コマンドプロンプトに戻る 新たなコマンドプロンプトの ウィンドウは開かない 内部コマンド, バッチファイル 新たなコマンドプロンプトのウィンドウ( Shell )が開き 指定されたコマンドやプログラムファイルが実行される 実行が終了しても開いたウィンドウは閉じない ( Wクリックでバッチを開いたときは, cmd.exe は終了する )
  :: -----------------------------------
  :: sub.bat ( よばれる側 )
  :: -----------------------------------

  echo "start"
  sleep 5
  echo "finish"
  sleep 5

  WARNING 

  :: start でコールした bat は Window が閉じない
  :: ( 別の cmd.exe がコールされてるから ) 
  :: 閉じたいなら 明示的に exit を呼ぶ
  exit

  :: -----------------------------------
  :: call.bat ( 呼ぶ側 )
  :: -----------------------------------
  
  :: /wait をつけないと sub.bat よりも先に終了
  start sub.bat

  :: sub.bat の終了まち
  start /wait sub.bat


  sleep 4

コマンドプロンプトで利用するコマンドツールが指定された場合(defragなど) Windowsプログラムでありながらコマンドプロンプトで利用するツールなどを指定した場合も 新たなコマンドプロンプトのウィンドウが開き そこで実行される 処理が終了するとウィンドウはすぐに閉じられる CommandPrompt == Window == Process のことかな? アプリケーションのファイル名( 実行可能でないファイル )を指定 関連づいたアプリケーションが起動( ダブルクリックと同じ ) FTYPE, ASSOC
    :: xxx.txt を Notepad でひらく
    start xxx.txt


    :: xxx.xls を Excel でひらく
    start xxx.xls

    :: xxx.wpl を WindowMediaPlayer でひらく
    start d:\mus.wpl


    WARNING
    (コマンド拡張機能が有効の場合)関連付けがなければエラー
    
    start foo.data

32bit GUI Program を起動する

    :: IE の終了まちをしなくても すぐに制御がもどる

    :: ie.bat -----------------------
    echo start
    start "title" "C:\Program Files\Internet Explorer\IEXPLORE.EXE" "http://yahoo.com"
    start "title" "C:\Program Files\Internet Explorer\IEXPLORE.EXE" "http://google.com"
    echo end
    :: -------------------------------


    :: バッチ処理してみる ( IE が起動してすぐに "end" が出力 )
    > ie.bat
    

ディレクトリ名を指定 エクスプローラが起動し 指定したディレクトリを開く

    :: エクスプローラが起動して "c:" ディレクトリを開く
    start C:\

    :: 別 Procss 実行するけど, 新しい Window は新たにださない
    start /b test.bat

    :: ( Prompt ) Window を最小化して実行
    start /min test.bat

    :: 別 Process( cmd.exe )を起動して別 Window で表示する
    start test.bat

    :: 現在の Process で実行( bat 内のコマンドを連続入力するのと同じ )
    test.bat


    :: C 言語からよぶと 非同期( 別 PS )で実行される
    system( "start /b foo.bat" );


    // [/b] をつけなくても 非同期になる
    // 別 Window は表示しっぱなし
    system( "start foo.bat" );


    :: 同期する
    system( "call foo.bat" );
    system( "foo.bat" );


    :: wait で同期する
    start /wait C:\mymus\test.wpl
    start /wait sub.bat



    :: レジストリエディタを起動
    start regedit


    :: コマンドプロンプトのウィンドウのタイトルを指定
    start "NewWindow" test.bat
    BAD
      ["] でくくる
    start NewWindow test.bat
    


    :: WEB Server などで実行するなら, 優先度をさげて CPU の割当を減らす
    start /BELOWNORMAL job.bat

"タイトル"  新たに開くコマンドプロンプトのウィンドウのタイトルバーに表示するタイトルを指定。 /b  ウィンドウを新たに開かずに指定したコマンドを実行 /d path 実行 Directory を指定する /i  現在の環境でなく、cmd.exe が起動する基本環境でコマンドを実行。 /min, /max  新しいコマンドプロンプトのウィンドウを最小化, 最大化にして開く /separate  別メモリ領域で16ビットプログラムを実行する。 /shared  共有メモリ空間で16ビットプログラムを実行する。 /wait  処理がおわるまで起動元を待機 処理優先度  コマンド実行時の処理優先度
    /LOW ・・・ IDLE優先度クラスで実行 
    /NORMAL ・・・ NORMAL優先度クラスで実行 
    /HIGH ・・・ HIGH優先度クラスで実行 
    /REALTIME ・・・ REALTIME優先度クラスで実行 
    /ABOVENORMAL ・・・ ABOVENORMAL優先度クラスで実行 
    /BELOWNORMAL ・・・ BELOWNORMAL優先度クラスで実行 
「/b」 コマンド実行の際に新しいウィンドウは開かなくなるが、 実行中のコマンドは基本的に c-c で処理を中断することはできなくなる 中断したい場合 c-BRK
___

■ takeown

SYNTAX takeown OPTION FILE ... DESC ファイルの所有権を変更する 指定したファイルの所有権をログインユーザに変更する
    takeown  /f  c:\Windows\System32\dinput8.dll
所有権を変更したら rename などができる
    ren  c:\Windows\System32\dinput8.dll  dinput8.dll__
___

■ taskkill

DESC Process を強制終了する
    taskkill /F /PID  xxx
    # 指定した名前のアプリケーションを殺す。( bash から実行 )
    id=`cmd /c "tasklist /FO csv" | grep -i "notepad" | cut -f 2 -d "," | sed 's/\"//g'`
    cmd /c "taskkill /F /PID $id"
___

■ tasklist

DESC プロセスをリストアップする。
    :: プロセスの一覧をみる
    tasklist
 
    :: CSV 形式
    tasklist  /FO  csv
___

■ time

DESC 時刻を取得する
    :: 22:52
    time /t 
___

■ timeout

SYNTAX timeout /T [] DESC 指定した時間( 秒 )をまつ
    :: 無限にまつ
    timeout /T -1

    :: 2 秒まつ
    timeout /T 2
___

■ title

DESC title MyDevelopment
___

■ type

SYNTAX type file DESC file の中身を表示 bash でいえば cat

    type test.txt

    type mingw.bat

___

■ ver

SYNTAX ver DESC OS の version をしらべる
___

■ XCOPY

SYNTAX xcopy [op] src dst DESC ファイル, フォルダをツリーのままコピー タスクから使えば バックアップ・システムになります robocopy を利用するとさらに便利 REFERENCE robocopy OP /D : 新しいファイルだけをコピー /S /E : (空のものも含めて)サブフォルダもコピーする、 /H : Hide 隠しファイル /C : エラーを無視 /Y : 無条件 /R : 読み取り専用ファイル /T : Directory のみを Copy /? : Help
     :: c:\include を f:\ 以下にコピー
     ::
     ::   Directory 全体を Copy するには 
     ::   dst の末尾に [ \ ]をつけて Directory であることを明示する
     ::
     xcopy c:\include f:\include\
     

     :: 除外リスト をつかう
     xcopy /EXCLUDE:c:\ext.txt /D /S /E /H /C /Y /R c:\include f:\include\


    :: net という cmd がある
    if exist z:\. net use z: /delete
    if not exist z:\. net use z: \\backupserver\backupvol


    :: log を残す. 
    set logfile=c:\log\copyall.log
    xcopy c:\usr z:\usr\ /D /S /E /H /C /Y /R >> %logfile%
除外リスト ファイルの内容

    :: コメントは bat file と同じ

    :: SVN の管理ファイルは無視( Sub Directory も無視される )
    .svn

    :: Object ファイルは無視
    .obj    

    :: backup file 
    ~

    :: 日本語 ( ASCII でない )文字もできます
    ::      書類_バックアップ.txt はコピーされない
    ::
    バックアップ


NINJAIDX 0