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

■ 制御構文




___

■ for_each_file

パターンにマッチするファイルを処理する
  for  %%f in (*.*) do echo %%f

  for  %%f in (*.txt) do echo %%f
再帰的にするには /R をつける
  for  /R  %%f in (*.txt)  do  echo %%f
___

■ forfiles

Windows VISTA 以降から利用できる。
    forfiles   /c   "cmd /c  echo @file"
    forfiles   /c   "cmd /c  echo @path"
再帰的に検索する。
    forfiles /s  /c   "cmd /c  echo @path"
パターンを指定する
    forfiles /m *.txt  /c   "cmd /c  echo @path"
日付を指定する。
    //  2015/3/1 以降に編集したファイル
    forfiles  /d  +2015/3/1  /c   "cmd /c  echo @path"

    // 30 日前に編集した
    forfiles  /d -30    /c  "cmd /c  echo @path"
___

■ for

SYNTAX FOR %%変数 IN (セット) DO command [param] FOR /L %%変数 IN (開始,ステップ,終了) DO command [param] DESC (Set) 内のトークンを変数にセットしてひとつずつコマンドで処理する WARNING %変数 ではなく %%変数 でないとだめ

    :: 連番 Directory をつくる
    for %%i in (1 2 3) do mkdir test_%%i

    :: 1 2 3 4 5
    FOR /L %%i IN (1,1,5) DO echo %%i

    :: 5 4 3 2 1
    FOR /L %%i IN (5,-1,1) DO echo %%i

SYNTAX FOR /F "eol=; tokens=2,3* delims=, " %%i in (file) do @echo %%i %%j %%k DESC file の各行を delims で区切り, 指定した tokens を変数にバインドして 処理をする

    ; foo.csv
    aaa,bbb,ccc
    111,222,333


    ::    aaa
    ::    111
    FOR /F "tokens=1 delims=," %%i in (foo.csv) DO echo %%i


    :: 区切り文字  [,] [ ] 
    FOR /F "tokens=1 delims=, " %%i in (foo.csv) DO echo %%i


    :: 2, 3 番目 Token を変数 i, j に Bind
    FOR /F "tokens=2,3 delims=," %%i in (foo.csv) DO echo %%i %%j

    
    :: Comment 文字 [;] より後ろは SKIP
    FOR /F "eol=; tokens=1 delims=," %%i in (foo.csv) DO echo %%i
       
/F ["< options>"] [Windows NT系] [拡張構文] < pattern> のデータを1行ずつ読み取って解析し、それらに対して < command-line> を実行します。%variableには解析した文字列が入ります。解析方法は「"< options>"」で指定します(解説参照)。 < pattern> にはファイル名(スペースやセミコロンで区切ることで複数指定可能です)、文字列(" "で囲みます)、コマンドライン(コマンドラインを' 'で囲みます)が指定可能で、それぞれファイルの中身、文字列そのもの、コマンドライン実行時の(標準出力への)出力結果を入力データとします。ただし、< options> に「usebackq」を含む場合は、文字列は「' '」で、コマンドラインは「` `」で囲む形式に変わります(これによりファイル名に「" "」を使用することができます)。 ※ < pattern> にコマンドラインを指定する場合で、パイプやリダイレクションを使用する場合は それらの文字の直前に「^」を用いることで使用可能ですが、複数のコマンドを「( )」を用いて記述(ネスト)すると正しく解釈されない場合がありますので、使用する際はご注意ください。 delims=delimiters delims="" /F のオプション値として指定する
    /F  "delims="
___

■ if

SYNTAX // {} でないよ ! () だよ ! IF [NOT] ERRORLEVEL 番号 code IF [NOT] 文字列1==文字列2 code IF [NOT] EXIST ファイル名 code IF defined 変数 ( code ) [else code ]

    :: 文字列の比較
    IF var == 7 ( 
      echo same 
    ) ELSE (
      echo diff
    )


    :: Insentive指定( 大文字, 小文字の違いは無視する )
    if /I Test == test (
      echo same
    ) else (
      echo diff
    )

    :: 文字列が数値のみなら 数値に変換されて大小比較
    if 10 LSS 12 (
      echo 10 は 12 より小さい
    ) else (
      echo false
    )


    EQU - 等しい
    NEQ - 等しくない
    LSS - より小さい
    LEQ - 以下
    GTR - より大きい
    GEQ - 以上

ERRORLEVEL で処理をわける
    if %ERRORLEVEL% == 0 (

    )

    :: 否定は not を使う。 != はできない。
    if not %ERRORLEVEL% == 0 (
      goto ERROR
    )

  WARNING 
    :: 次の表記もできるが、誤解しやすいので推奨しない

    :: 0 以上ならば
    if %ERRORLEVEL% 0 (

    )

    :: 1 以上ならば
    if %ERRORLEVEL% 1 (

    )

    :: 3 未満ならば
    if not %ERRORLEVEL% 3 (

    )
    
    :: directory の有無をチェック
    IF exist dir (

    ) ELSE (

    )

    :: file の有無をチェック
    IF exist test.txt (

    ) ELSE (

    )

    :: 変数が定義されているかどうかチェック
    IF defined v ( echo Def ) ELSE ( echo NotDef )

    :: 環境変数があるかどうか
    IF defined USERNAME ( echo Def %USERNAME% ) ELSE ( echo NotDef )


  WARNING
    :: 以下の記述はエラーになる。
    if aaa == aaa 
    (
       echo "same"
    )
    
引数が空だと問題がある 理由は %1 が変数展開されると次のようになる。
    :: BAD
    ::    コマンドの構文が間違っています
    if aaa == %1 (
      echo same
    )

    :: %1 の展開後の結果
    if aaa == (

    ) 

    :: そこで "" 囲む。
    :: OK
    if "aaa" == "%1" (
      echo same
    )
ELSE 節は IF の後のコマンドと同じ行におく

      BAD
        :: C のようにかけない
        :: "ELSE" を命令として勘違いする
        IF EXIST filename. (
            del filename. 
        ) 
        ELSE (
          echo filename. missing.
        )

      OK
        IF EXIST filename. (
            del filename.
        ) ELSE (
            echo filename. missing.
        )


      :: 一行にしても良い。
      IF EXIST filename. (del filename.) ELSE echo filename. missing

___

■ prompt . dialog


  SET /P < var>=[< prompt message>]

  SET /P id=Please enter your name: 

  IF "%id%"=="" GOTO Error
___

■ 変数


___

■ 変数(Variable)

  :: 代入
  set VAR=aaa

  :: 変数展開
  echo %VAR%

  WARNING 
    :: [=] の前の space だめ
    set var =abc

    :: [=] の後の space は OK ( ただし space も文字あつかい " abc" がセット  )
    set var= abc

    :: bash と同じく space を入れないのが無難
    set var=abc



    :: 遅延展開を有効にする
    setlocal ENABLEDELAYEDEXPANSION

    set a=foo

    if %a% == foo (

      set a=bar

      :: RET
      ::  foo
      echo %a%

      :: 遅延( 実行時 )展開
      :: RET
      ::  bar
      echo !a!

    ) 
___

■ 文字列(String)


___

■ 長さ(length)

DESC 関数などで調べる方法はない 部分文字を抽出して調べる
   set x=12345678
   set y=%x:~8%

   if defined y echo 9文字以上


   set x=12345678
   set y=%x:~8%

   if defined y echo 9文字以上
   set z=%x:~7%
   if defined z echo 8文字以上

   if defined z if not defined y echo 8文字
___

■ 置換(replace)

  set V=aaa

  :: bbb
  echo %V:a=b%

  :: abc
  echo %V:aaa=abc%
コマンドがないため for で対応をする
    :: 変換したい文字列をセット
    set src=d:\foo\bar

    echo %src%

    em 置換する文字
    set search=\

    :: 置換後の文字
    set replace=/

    :: 変数初期化
    set dst=
    set tmp=

    :loop
    if "%src%" == "" goto :end
    for /f "tokens=1* delims=%search%" %%A in ("%src%") do (
      set dst=%dst%%tmp%%%A
      set src=%%B
      set tmp=%replace%
    )
    goto :loop

    :end


    echo %dst%
___

■ 抽出

SYNTAX %var:~OFFSET,LENGTH%

  :: 0 番目 から 2 つ
  :: ai
  set var=aiueo
  echo %var:~0,2%


  :: 後ろから 4 つ目より後
  :: .txt
  set var=foo.txt
  echo %var:~-4%


  :: 後ろから 4 つを消す
  :: foo
  set var=foo.txt
  echo %var:~0,-4%


  :: 2 番目から後ろ
  :: ueo
  set var=aiueo
  echo %var:~2%


  :: Argument の展開は失敗する
  ::    別変数にセットしてからする
  
  :: BAD
  set pathbody=%1:~0,-4%

  :: OK
  tmp=%1
  set ret=%tmp:~0,-4%
___

■ 結合(concat)

結合は 展開の結果をそのまま使う
    set a=kato
    set b=taka

    echo %a%%b%
___

■ 算術演算(Math)


___

■ Math

SYNTAX set /a expression DESC Expression を数式として評価する
  :: 右辺を 数式として評価する

  :: 3
  set /a var=1 + 2
  echo %var%

  :: 1
  set /a var=( 1 + 12 ) % 3

___

■ 引数(Argument)


___

■ Argument

  test.bat 1 2 3

  :: 1
  echo %1  

  :: 2
  echo %2

  :: 3
  echo %3  

  :: 全部とる
  :: 1 2 3
  echo %*
  
  :: 他の実行ファイルにパスする時に便利
  test.js  %*
  


  :: Parameter の数をとる
  setlocal ENABLEDELAYEDEXPANSION
  for %%i in (%*) do set /a cnt=!cnt!+1
  echo パラメータ数は %cnt%
___

■ ドラッグアンドドロップ

バッチファイルにドラッグアンドドロップされたファイルは引数として渡される
    echo %*
___

■ 配列(Array)




___

■ 配列

DESC 配列がないため、環境変数として擬似的に表す。 [] は添え字演算子ではないので、変数の文字の一部になる。

    
    :: 10個の環境変数としてセット
    for /L %%i in (1,1,10) do set a[%%i]=%%i

    :: 値を参照する
    for /L %%i in (1,1,10) do call echo %%a[%%i]%%


    :: 1
    echo %a[1]%

___

■ 関数(Function)


  POINT
    call コマンドとタグで関数をつくる


    :: 関数のよびだし
    call :add  10 20
    echo %ret%
    call :add  10 1
    echo %ret%

    
    :: 関数定義の行をスキップさせる    
    goto end


    :: タグと exit で囲む範囲を関数にする
    :add  
      :: 戻値は終了コード, 変数を経由してわたす
      set /a ret=%1 + %2
    exit /B 0

    :end

___

■ SYNTAX


___

■ ExitCode(終了コード)

バッチの各コマンドラインで呼び出すプロセスの終了コードは %ERRORLEVEL% で取得できる。
    // test.js
    WScript.Quit( 0 );
    // main.exe
    int main (){
      return 1;
    }
    cscript test.js
    echo ExitCode = %ERRORLEVEL%

    ./main.exe
    echo ExitCode = %ERRORLEVEL%
___

■ バックグラウンド実行(Background)

非同期でプロセスを実行するには start コマンドを使う。 REFERENCE start
    echo start
    :: メモ帳は起動するがブロックされない
    start notepad.exe

    echo finish
start を利用しないとブロックされる
    echo start
    notepad.exe
    echo finish
___

■ 組込み変数(EmbededVariable)


  :: WORKING PATH
  ::   CurrentDirectory のチェックに便利
  echo %CD%

  :: C:\WINDOWS
  echo %SystemRoot%

  :: C:
  echo %SystemDrive%

  :: \Documents and Settings\usrname
  echo %HomePath%

  :: \Documents and Settings\usr
  echo %HOMEPATH%


  :: あなたがつけたコンピュータ名
  echo %HOSTNAME%

___

■ コマンドのエコー

通常のバッチの実行では各行のコマンドがエコーされる。 各コマンドの最初に @ をつける
    @mkdir  tmp
エコーをオフにする。
    echo off

    mkdir tmp
___

■ Command.の結合

SYNTAX cmdA && cmdB cmdA || cmdB

  :: コマンドの実行結果が真であれば, echo bbb を実行
  echo aaa && echo bbb

  cmd /c copy aa.txt bb.txt >nul && echo succeeded.

  cmd /c copy aa.txt bb.txt >nul || echo fail

  cmd /c echo aaa && echo succeeded.
 
___

■ Redirect

    date /t > "d/test.txt"
___

■ コマンド置換

    set a=%date%

    set a=%time%

    set a=%hostname%

POINT ファイル名にタイムスタンプをつける
    set t=%time%
    
    set f=log%t%.txt
___

■ STDOUT

DESC cmd にも pipe という概念がある
    ::
    :: Redirect
    :: 
    echo aaa > d:/ret.txt

    :: stderr のみ 
    echo aaa 2> d:/ret.txt

    :: stdout のみ
    echo aaa 2> d:/ret.txt

    :: stdout stdin を同じにする
    echo aaa > d:/ret.txt  2>&1
___

■ quot

  // VS でもできる 
  "copy $(TARGET)"

  // <  をはく
  echo ^< 

  :: SAPCE があるときは ["] で quot する ( ややこしい ! )
  :: BAD 
  c:/Program Files/foo/test.exe
  :: OK
  "c:/Program Files/foo/test.exe"


  :: ["] は 引数には含まれない -> やっぱり含まれる ? 

  test.bat  "argument"
  /pro/bat/arg.bat "argument"

  :: BAD
  C:\Program" "Files\Windows" "Media" "Player\wmplayer.exe /play C:\mymus\test.wpl
  :: OK
  "C:\Program Files\Windows Media Player\wmplayer.exe"  /play C:\mymus\test.wpl

___

■ Drive.のきりかえ


  :: [:] を忘れずに, 大文字 小文字はどちらでも OK

  :: BAD 
  d

  :: OK
  d:
  :: OK
  D:
___

■ Comment

REM comment rem comment :: comment
___

■ 文字.Code

WARNING sjis-unix では 日本語はダメ
___

■ cmd.exe.のオプション


___

■ 起動ディレクトリを制御する

DESC cmd.exe の Shortcut 作成 Shortcut Tab で Directory 指定
___

■ 補完をONにする

DESC c-f で file 名を補間 %SystemRoot%\system32\cmd.exe /f:on W-r は PATH にある file をさがすので 次のような bat をおいておく
    :: bash.bat
    ::    bash を高速に起動
    cmd /K "D: && cd cygwin/bin && bash --login"
___

■ コマンドの出力結果を変更


  :: UNICODE
  cmd /u

  :: ANSI
  cmd /a
  
___

■ Interpreter.のしくみ

    :: quot は ["] のみ ['] はだめ

    :: OK
    > "hostname"

    :: BAD
    > 'hostname'

bash と連携する。 POINT cmd prompt は ["] を特別な文字として扱わずに CommandLine の文字列を bash にそのまま渡す。 bash は -c "/script/test.sh d:\foo\test.txt" として引数をうけとる。 結果 -c "/script/test.sh d:footest.txt" となってしまう そこで -c "/script/test.sh \"d:\foo\test.txt\"" を bash ( interpreter ) に渡す。 次のように解釈される -c /script/test.sh "d:\foo\test.txt"
    bash -c "/script/test.sh  d:\foo\test.txt"

    bash -c "/script/test.sh  \"d:\foo\test.txt\""
___

■ リファレンス(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 はコピーされない
    ::
    バックアップ
___

■ EXTRA


  

___

■ StartUp

WARNING 再帰的に実行しません
    OK
    C:\Documents and Settings\usr\スタート メニュー\プログラム\foo.exe
    
    BAD
    C:\Documents and Settings\usr\スタート メニュー\プログラム\tmp\foo.exe
___

■ 実行fileの起動

SYNTAX file xxx.bat DESC
     // excel file 開く ( && bg 実行 )
     doc.xlsx

    // 他の batch をコール
    foo.bat

WARNING
  // cmd 名と同じ名前にすると loop する可能性あり
  //  ftp.bat

      :: ftp.bat
      {
        ftp xxx.xxx.jp
      }
___

■ その他いろいろ

DESC RMB > 名前順に変更 すべての.Program.は名前の順番が変更ができる

  // DOS にはないです
   大文字.小文字の区別なし

___

■ 環境変数(ENV)


  POINT
    環境変数のリストを見るには set コマンドを使う
    set > d:/env_list.txt
POINT エクスプローラのパスに %TEMP% などと入力すると置換後のパスに移動できる
    %TEMP%
___

■ USERNAME

DESC ログインしている user account 名をかえす WARNING USER はない
___

■ COMPUTERNAME

:: Hostname とは 違うのかな ? :: xxx echo %COMPUTERNAME%
___

■ ERRORLEVEL

DESC 直前の exe の 返値 をとる exit の値をとるときに便利
___

■ unix

unix 環境で定義される
___

■ TEMP

temp ディレクトリのパス
    C:\Users\user\AppData\Local\Temp
___

■ HOMEPATH

ログインユーザのホームディレクトリ
    C:\Users\user
___

■ Windowsチップ集 . TIPS







___

■ ControlPanel.コントロールパネル

  main.cpl
___

■ 画像ファイルを表示する

常にアイコンを表示する OFF
___

■ SendTo

Windows7 から以下のディレクトリにある。 ここにあるプログラムに [ 送る ]メニューからファイルパスを引数として渡せる。
    %userprofile%\AppData\Roaming\Microsoft\Windows\SendTo
___

■ エクスプローラの検索

検索文字に OR をつけると A または B のファイル検索ができる
    .jpg OR .bmp
NOT をつけると結果を反転する
    NOT  .txt
___

■ Desktop.からゴミ箱を消す

    reg add hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum

    reg add hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\NonEnum 
        /t REG_DWORD /v "{645FF040-5081-101B-9F08-00AA002F954E}" /d 1 /f
REFERENCE reg
___

■ ドライブレター(DriveLetter)を変更する

  [コントロール パネル] > [管理ツール] > [コンピューターの管理] > [ディスクの管理]  > [ドライブ文字とパスの変更]
___

■ フォルダの読み取り専用をOFF

グレー の表示になっていて, File を配置することはできる DESC フォルダの読み取り専用フラグを外せないことがあります レジストリを修正します POINT
    // OS(Windows) が SystemFolder 扱いにするためです


     1.レジストリエディタを開きます
     2. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer
     3.メニューから[編集] > [新規作成] > [DWORD値]
     4.UseSystemForSystemFolders という名前を入力し「Enter」
     5.新しい値をダブルクリックし「1」を入力して「OK」
     7.再起動して変更結果を適用
___

■ IE

___

■ お気入りにすぐとぶ

___

■ 背景色を変更する

DESC System Color が利用される Desktop > RMB > Property > [Design] > 配色変更
___

■ ワイヤレスネットワーク接続のメッセージを表示させない

マイネットワーク > プロパティ > ワイヤレスネットワーク接続 > 無効にする コピー〜
___

■ 〜へのショートカットを消す


    // Registery の値を 0 にすることで 消える

    // 現在の値
    reg query HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer /v link

    // 値を設定
    //    link に 0 を設定
    reg add hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer /v link /t REG_BINARY /d 1e000000 /f
___

■ カーネルメモリの設定でXPを速くする

    reg add "hklm\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" 
          /v "DisablePagingExecutive Management" /t REG_DWORD /d 1 /f
___

■ タスクトレイのバルーン表示を止める

    reg add hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced 
        /v EnableBalloonTips /t REG_DWORD /d 0 /f
___

■ エクスプローラのメニューバーやツールバーに画像を貼り付ける

    reg add "hkcu\Software\Microsoft\Internet Explorer\Toolbar" 
        /v BackBitmap /t REG_SZ /d d:\test.bmp /f
___

■ シャットダウンの待ち時間を短くする

    reg add hklm\SYSTEM\CurrentControlSet\Control 
        /v WaitToKillServiceTimeout /t REG_SZ /d 3000 /f
___

■ Error.時の.MS.の報告を.OFF

___

■ 上書きをすべて.Cancel

___

■ ロゴ表示を省略して高速起動

___

■ userに.Account.をあたえる

DESC -> ただし, ここ操作自体は sys account でやらないとだめ コントロールパネルから管理ツールを選択。 ローカル セキュリティ ポリシーを選択。 ツリーからセキュリティの設定 - ローカルポリシー - ユーザー権利の割り当て を選び システム時刻の変更をダブルクリック XXX なことを user 権限でやってもいいよ ってこと
___

■ Shutdown.時にコマンドを実行

DESC タスクにはないイベントのため, グループ・ポリシーを代用します コンピュータの終了時にコマンドを実行する
___

■ FolderOption

DESC Default では隠しFolderが表示できないためレジストリをいじります
  // String 型だが 1 にします
    regedit > 
  HKEY_LOCAL_MACHINE
    SOFTWARE
      Microsoft
        Windows
          CurrentVersion
            Explorer
              Advanced
                Folder
                  Hidden
                    SHOWALL    
___

■ Recent

DESC スタートメニューに表示される"最近使ったファイル"を消します
  1. 管理者権限ユーザーでログオン
  2. ファイル名を指定して実行 > regedit

  HKEY_CURRENT_USER > Software > Microsoft > Windows > CurrentVersion > Policies > Explorer

  1. Explorerを右クリック 
  2. 「新規」−「DWORD値」を選ぶ
  3. 「NoRecentDocsHistory」DWORD値を作成
  4. 「NoRecentDocsHistory」をダブルクリック
  5. 「値のデータ」に半角数字の「1」を入力 
  6. OKボタンをクリック

  7. 再起動
___

■ Task

* 終了時という.Event.はない
___

■ USB.が認識されない

* MyCon > Property > [HW] > DeviceMgr * cmd > devmgmt.msc * [!] > 削除 * 再度 Install
___

■ IME.日本語入力.辞書ツール

文節の区切りを変更するには s-(< -|->)
___

■ IME(InputMethodEditor)

IME とは文字変換プログラムのこと。 Windowsシステム上で日本語や中国語など 文字の多い言語で入力を行なうために必要な変換ソフト 日本語用のIMEとしては Windows 95/98に標準の MS-IME ジャストシステムのATOK バックスのVJE コマンドラインから起動
  alias dic="C:/Windows/System32/IME/IMEJP10/IMJPDCT.EXE &"  # 辞書ツール

  C:/Windows/System32/IME/IMEJP10/IMJPDCT.EXE &
___

■ コマンドラインから単語登録

___

■ 単語の登録に失敗しました

REF C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup 修正方法 1. 辞書を修復する 言語バー > 「ツール」 > プロパティ B開いたウィンドウで 「辞書/学習」タブ > 辞書ツール:」の「修復」をクリック 2. システムの辞書に登録する よみ : ひらがなで入力 語句 : 文字 WARNING user dictionary は入力できないらしい。 1 C:\WINDOWS\ime\IMJP8_1\imjpdct.exe -t C:\Windows\System32\IME\IMEJP10 tel
    # txt として出力( .dic だと失敗する可能性あり. )
    Tool > Property > 辞書ツールボタン. > Tool > 一覧の出力 > xxx.txt 
    
    # txt から入力
    Tool > Property > 辞書ツールボタン. > Tool > TextFile からの登録 > xxx.txt 
WARNING IME が起動しないと言語バーが表示されず、日本語入力ができなくなる場合は 以下のコマンドを DOS 窓から実行する。
    ctfmon
___

■ ゴミ箱を常に空にする

WARNING 削除したファイルをゴミ箱から復帰できなくなります
    ごみ箱 > RMB > Property > DeleteAlways : ON
___

■ 消すときの確認をなくす

ゴミ箱 > RMB > 「削除の確認メッセージを表示する」OFF
___

■ windows.key.を使う

* W-r : Run As Filename
___

■ Computer.名を変更する

MyComputer > ComputerName > Modify
    :: 変更が正しく動作しているか確認します
    ping NewComputername
WARNING
___

■ Registry

DESC WARNING UserAccout では編集できない reg query hkcu\\\\Console
___

■ VISTA

// 昔の設定にもどす コントロールパネル > クラシック表示 // タスク の設定 コントロールパネル->システムとメンテナンス->管理ツール->タスクスケジューラ // Folder の表示を Tool > FolderOption > [ 表示 ] > フォルダに適用 // vista では Directory に管理者権限がないといわれて, 怒られるが, この方法で 正しく動作 // // 「コンテキスト メニュー, [スタート]メニューへの項目のドラッグ/ドロップを有効化する」 // にチェックが付いているか確認 // sendto // うまくいかないときは, 直接 folder にいれてやる [ アクセスが拒否されました ] を修正する // VISTA 環境では user 権限では操作できない // VISTA 固有というわけではない // < JUNCTION> NT AUTHORITY\SYSTEM SendTo [C:\Users\usr\AppData\Roaming\Microsoft\Windows\SendTo] // SendTo はここを直接修正すれば OK < JUNCTION> NT AUTHORITY\SYSTEM SendTo [C:\Users\usr\AppData\Roaming\Microsoft\Windows\SendTo] ControlPanel > System > 管理.Tool > LocalSecurityPolicy AccountPolicy > Password Policy > Password の有効期限
___

■ ゴミをすぐ消す

___

■ 詳細表示にする

___

■ タスクマネージャ(TaskManager)

ファイル名を指定して実行 > taskschd.msc /s
    ------------------
    アクティブなタスク  をクリック
    ------------------

    登録すみの タスク を WCLICK

        RMB > Property
            > 実行する
            > 無効

    [ 操作 ] > 
         プログラム    // 実行するプログラム
         開始          // 開始ディレクトリ

    [ トリガ ] > 
         設定
           
            毎日    開始 [ 2010.05.31   ] [ 2010.05.31 ]

         詳細設定
            有効       // ON にする


  -----------------------------------------
  操作
  -----------------------------------------

      タスクの作成   // これ押す

  -----------------------------------------

    alias tm="cmd /c taskschd.msc /s"
    > %SystemRoot%\system32\taskschd.msc /s
HKEY_CLASSES_ROOT Windowsで使用されるクラスの集合。 HKCR HKEY_LOCAL_MACHINE ローカルコンピュータの全体に渡って有効な設定項目。 HKLM HKEY_USERS ユーザーごとのHKEY_CURRENT_USERを集めた設定項目。 HKU
___

■ HKEY_CLASSES_ROOT(HKCU)

DESC その時点でログオンしているユーザに対して有効な設定項目 利用しているファイルタイプ, OLEを利用しているアプリケーションの情報がある bmp, jpg といった拡張子のフォルダを開くと MIMEタイプや関連付けられているアプリケーションの情報が分かる
___

■ HKEY_CURRENT_USER

DESC 現在ログオンしているユーザーの構成情報があります 後述する HKEY_USERS の情報を反映させたもの
___

■ HKEY_LOCAL_MACHINE

DESC マシンにインストールされている HW, SW の情報があります 複数のハードウェア設定を指定できるため,現在のハードウェア設定は HKEY_CURRENT_CONFIG に指定されている
___

■ HKEY_USERS

DESC 各ユーザーが指定した 配色やコントロールパネルなどのユーザープロファイルがある この中には .DEFAULT というフォルダがあり Windows2000/XPでは ユーザーが新しく加えられるときに利用されるテンプレートとなっている
___

■ HKEY_CURRENT_CONFIG(HKCC)

DESC 現在の HW の設定項目 HKEY_LOCAL_MACHINEで設定されたキーのうち 現在利用しているハードウェア構成に適した情報が含まれている
___

■ HKEY_DYN_DATA

DESC ( Windows95/98/Me ) HKEY_LOCAL_MACHINEに設定されている WindowsのPlug&Play情報が含まれている
___

■ Excel

DESC * グラフ作成方法. 矩形選択 > 編集 Tab > 棒グラフ( 3 種類 ) * 線をけす * 全選択をして BG を白に POINT * 1 Document にまとめて 使いまわすことで効率 UP
___

■ MediaPlayerClassic(MPC)

POINT 次のオプションを設定しておくと便利 ウィンドウサイズを固定する 表示 > オプション > 再生 > 自動拡大 OFF 連続再生 表示 > オプション > 再生 > 連続再生 || 再生後に巻き戻し ON コマンドラインから操作する
    // 指定したファイルを再生する
    mpc-hc64.exe    c:/a.flv

    // 指定したファイルを開くだけで再生しない
    mpc-hc64.exe    /open  c:/a.flv

    // 再生リストに追加する
    mpc-hc64.exe    /add c:/a.flv

    // オプションの一覧をみる
    mpc-hc64.exe    /h
___

■ Cygwin.との違い


  DESC
    Path[/] は Option 扱いになる. DosCmd( Program ) に POSIX path で渡す場合は注意. 

    BAD
      cd c:/test/pro
      mkdir c:/test/pro
    OK
      cd c:\test\pro
      mkdir c:\test\pro
    OK
      :: App が POSIX path 前提で扱ってくれる
      SceneViewer c:/test/pro  
  
___

■ 大文字小文字の区別はない

    c:
    
    cd test

    :: DIR, dir どちらでも OK
    DIR
    dir

POINT file 名の参照も 区別なし

    mkdir FOO
    cd foo

___

■ ;はいらない

通常文字としてあつかわれる
___

■ 環境変数PATH

DESC 環境変数 は [\] が無難. [\] を前提にしている Application がある
___

■ Event.イベント


  


    

  eventvwr    
Windowsアプリケーションなどから外部のコンソール・ アプリケーション(.EXEファイル)やバッチ・ファイル(.BATファイル)を起動する場合 単純にProcess::Start()(System.Diagnostics名前空間)を実行しただけでは 余計なコマンド・プロンプト(正確にはコンソール・ウィンドウ)が開いて実行される 次のように考えれば OK コマンドプロンプト == コンソール・ウィンドウ 文字 と 描画 による 出力は本質的に同じ Program には [入力] , [出力] が必要 まとめ Windows Application から system("xxx.bat") をコール -> ConsoleWindow が表示される Console Application から system("xxx.bat") をコール -> ConsoleWindow が表示されない. -> 同じ Console Window に STDOUT の結果がかえる system ProcessEditor で見てみる
    console.exe
      cmd.exe   // system("xxx.bat")
        sleep.exe   // sleep 1
        sleep.exe   // sleep 1
      

    window.exe
      cmd.exe   // system("xxx.bat")  : ここで別の Console Window が表示される
        sleep.exe   // sleep 1
        sleep.exe   // sleep 1

___

■ ftp


    Windows の ftp コマンドの使い方のメモ。
    http サーバなどにファイルを転送するときに使う。

    ヘルプでオプションを調べることができる。
    ftp /h
一連の処理をスクリプト化したら -s で指定する
    ftp  -s:d:/ftp.txt  FTP_SERVER
スクリプトには以下のような ftp コマンドをかいておく
    # 最初の2行に user, password をいれてログインする
    USER_NAME
    PASSWORD
    
    # ログインしたら任意のコマンドを入力する
    ascii

    # ローカルの  d:/test.txt をFTPサーバの htm フォルダ以下に転送する
    send  d:/test.txt   /htm


    # 処理が完了したら quit でFTPサーバとの接続を切る    
    quit
___

■ ポートを指定する

ftp では通常は 21 番ポートを使用する。 FTPサーバが 21番意外のポートを指定する場合は、接続の際に明示する。 Windows の ftp.exe では最初に接続してから, open コマンドで指定する
    ftp

    open  FTP_SERVER  PORT
___

■ 「名前の付けて保存」ダイアログボックスの「お気に入り」にフォルダを追加する



Windows 7で、ワードやエクセルでファイルを保存する時に表示されるダイアログボックスには
左側にメニューがある。インストール直後は、そのメニューの最上部に「お気に入り」があり
ダウンロード、デスクトップ、最近表示した場所の3つ(のフォルダへのショートカット)がある。ここにフォルダ(ショートカット)を追加するには
以下のフォルダにショートカットを置くこと。○○○はログインした時のユーザー名。 

C:\Users\○○○\Links 素早く保存をするには、ライブラリにフォルダを追加するよりは

こちらのほうが便利。


  %userprofile%\links

    %homedrive%

  test


___

■ openfiles コマンドでファイルを開いているプロセスを調べる


  REF
    http://www.tooljp.com/windows/doc/Server2008/openfiles/openfiles.html


    現在開かれているファイルの一覧を表示するには以下のコマンドを実行します。
  
  openfiles /query /v
  openfiles /query | findstr test.txt
/local on の設定を行うと性能が悪化します。よって設定が不要なら設定を戻すことを推奨します。C:\>
  openfiles /local off
___

■ My Computer


  コントロール パネル\システムとセキュリティ\システム


___

■ BIOS.バイオス


  TY5000S
  Windowsが起動している場合は、コンピューターをシャットダウン(終了)します。

  コンピューターを起動して黒い画面の中央に「EPSON」と表示されたら
  すぐに「Delete」キーを「トン、トン、トン・・・」と連続的に押します。

  ※Windowsが起動してしまった場合は、コンピューターを再起動して手順1をもう一度実行してください。
  

___

■ 自動再生


  explorer  で以下を入力
  コントロール パネル\ハードウェアとサウンド\自動再生
___

■ ShortcutMenu.ショートカット.RightClickMenu . 右クリックメニュー


  Registry に以下の値を入力
    
    HKEY_CLASSES_ROOT>*>shell > command 

    cmd /c echo %1  && pause  
___

■ cygwin のコマンドを実行する


  フルパスを指定すれば実行できる。
    set sh=d:\cygwin\bin\
    %sh%find.exe    d:/   -size +10M
___

■ PublicFolder . パブリックフォルダー


  同一PC内のユーザーのアカウントの共通フォルダのこと。

  c:/users/public
___

■ keyboardShortcut キーボードショートカット



  実行ファイル > Property > キーボードショートカット
  
___

■ taskbar . タスクバー


  REF
    http://d.hatena.ne.jp/Academic_notes/20120518/1337410609

  HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/Advanced

  
  





NINJAIDX 0