バッチファイルのメモ
忘れがちな、むしろ、書くたびに忘れきっているバッチファイルのメモ。
この程度で事が足りているのがもの悲しい。
- 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
- 入力を受け取りたい時
set /p
で
set /p hogehoge="入力してください---> "
説明が長くなって右の方でチマチマ入力するのがいやな時は適当に以下のような感じで
echo ファイル名がデフォルトのままでよければそのまま[Enter]
echo 変更する場合はファイル名(拡張子除く)を入力して[Enter]
set /p hogehoge="---> "
- 一つ前の変形で、再起動後にも数を数える
再起動の数を数える時などファイルに回数を書き出しておく
count.txt は「0」や「100」等、数だけのテキストファイル
set hoge=0
set /p hoge=<count.txt
set /a hoge=%hoge%+1
echo %hoge% 1>count.txt
- 普通のリスト的な表示するのでなく微妙な3択
仮定となる前提条件があるときに (なぜか忘れがちなこの書き方)
echo Dドライブに作成する [D]
choice /c:dmq /n /m "メニューに戻る [M] / 終了する [Q]"
if errorlevel 3 goto end
if errorlevel 2 goto startmenu
choice.exe は Windows2003 Server か WindowsVista から拾ってくると多少幸せ
- ドライブ(リムーバブル)が使えるか知りたいとき
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. 、何かウマい手はないものか。
| 固定リンク
この記事へのコメントは終了しました。
コメント