« バッテリリコール 交換 : その1 | トップページ | バッテリリコール 交換 : その2 »

2006年10月 2日 (月)

バッチファイルのメモ

忘れがちな、むしろ、書くたびに忘れきっているバッチファイルのメモ。
この程度で事が足りているのがもの悲しい。

  1. hoge_20061002-2229.wim のような日時入りファイル名を作りたいとき
    日付の表示によって影響を受けて万能ではないので注意
    set hoge=hoge_%date:~0,4%%date:~5,2%%date:~-2%-%time:~0,2%%time:~3,2%
    echo %snapshot%.wim

    事前に確認しなければいけないのは以下
    >echo %date%
    2006/10/02

    >echo %time%
    22:29:15.13

  2. 入力を受け取りたい時
    set /p

    set /p hogehoge="入力してください---> "

    説明が長くなって右の方でチマチマ入力するのがいやな時は適当に以下のような感じで
    echo ファイル名がデフォルトのままでよければそのまま[Enter]
    echo 変更する場合はファイル名(拡張子除く)を入力して[Enter]
    set /p hogehoge="---> "

  3. 一つ前の変形で、再起動後にも数を数える
    再起動の数を数える時などファイルに回数を書き出しておく
    count.txt は「0」や「100」等、数だけのテキストファイル
    set hoge=0
    set /p hoge=<count.txt
    set /a hoge=%hoge%+1
    echo %hoge% 1>count.txt

  4. 普通のリスト的な表示するのでなく微妙な3択
    仮定となる前提条件があるときに (なぜか忘れがちなこの書き方)
    echo Dドライブに作成する [D]
    choice /c:dmq /n /m "メニューに戻る [M]  /  終了する [Q]"
    if errorlevel 3 goto end
    if errorlevel 2 goto startmenu
    errorlevel 1 が無いのは D が前提で続くという事であえて書かない、見た目をリストっぽくしないのが目的

    choice.exe は Windows2003 Server か WindowsVista から拾ってくると多少幸せ

  5. ドライブ(リムーバブル)が使えるか知りたいとき
    exist D:\NUL
    を調べる
    if exist D:\NUL (echo 使えそう) else (echo ない)

    以上を踏まえて次を適当にコピペする
    set driveList=

    if exist A:\NUL (set driveList=%driveList%A,)
    if exist B:\NUL (set driveList=%driveList%B,)
    if exist C:\NUL (set driveList=%driveList%C,)
    if exist D:\NUL (set driveList=%driveList%D,)
    if exist E:\NUL (set driveList=%driveList%E,)
    if exist F:\NUL (set driveList=%driveList%F,)
    if exist G:\NUL (set driveList=%driveList%G,)
    if exist H:\NUL (set driveList=%driveList%H,)
    if exist I:\NUL (set driveList=%driveList%I,)
    if exist J:\NUL (set driveList=%driveList%J,)
    if exist K:\NUL (set driveList=%driveList%K,)
    if exist L:\NUL (set driveList=%driveList%L,)
    if exist M:\NUL (set driveList=%driveList%M,)
    if exist N:\NUL (set driveList=%driveList%N,)
    if exist O:\NUL (set driveList=%driveList%O,)
    if exist P:\NUL (set driveList=%driveList%P,)
    if exist Q:\NUL (set driveList=%driveList%Q,)
    if exist R:\NUL (set driveList=%driveList%R,)
    if exist S:\NUL (set driveList=%driveList%S,)
    if exist T:\NUL (set driveList=%driveList%T,)
    if exist U:\NUL (set driveList=%driveList%U,)
    if exist V:\NUL (set driveList=%driveList%V,)
    if exist W:\NUL (set driveList=%driveList%W,)
    if exist X:\NUL (set driveList=%driveList%X,)
    if exist Y:\NUL (set driveList=%driveList%Y,)
    if exist Z:\NUL (set driveList=%driveList%Z,)

    echo %driveList%

普通の WindowsXP のプロンプトでやると、鬱陶しい事になるが、WinPE 上からならスッキリ使える 6. 、何かウマい手はないものか。

|

« バッテリリコール 交換 : その1 | トップページ | バッテリリコール 交換 : その2 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/60348/12128729

この記事へのトラックバック一覧です: バッチファイルのメモ:

« バッテリリコール 交換 : その1 | トップページ | バッテリリコール 交換 : その2 »