2011年2月7日月曜日

REN = RENAME = ファイルやフォルダーの名前を変更する - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。ファイルとフォルダー関連
○Windows XP
指定したファイルやフォルダーの名前を変更します。

o 複数のファイルに対して、ファイル名の一部分を一括変換する事も出来ます。(= フォルダーは不可)
    + 但し、変換規則に個性がありますので、気を付けて使います。
o 別のフォルダーやドライブに移動する時は、MOVE コマンドを使います。


**** 書式
--------
rename ファイル名 変更後のファイル名
もしくは
ren ファイル名 変更後のファイル名
--------

o コマンド名は、大文字小文字のどちらでも大丈夫です。
o ファイル名 = 名前を変更したいファイル名、もしくはフォルダー名です。
    + ファイルの場所とファイル名を「\」でつなぎます。
    + 今居る場所からの相対パスも指定出来ます。
    + ファイル名部分の指定には、ワイルドカード(「*」や「?」)を使用出来ます。
        + 但し、フォルダー名を変更する時は、ワイルドカードを指定出来ません。
    + このコマンドでは、「\」の代わりに UNIXの区切り文字「/」を使う事は出来ません。
o 変更後のファイル名 = ファイルの場所は指定出来ません。
    + ファイル名の指定には、ワイルドカード(「*」や「?」)を使用出来ます。

** 複数ファイルを指定する時の、ファイル名の書き方について
o 「*」は0文字以上の文字列。「*」で指定した部分は変更されません。
o 「?」は任意の1文字。こちらは、変更対象になります。
o ファイル名の先頭を変更する時の規則は、おそらく次の通りです。
    + 比較する時は、変更前のファイル名を基準にして、先頭から順に「*」が出るまで比較していきます。
        + なるべく「.」以下の拡張子を残すように比較するみたいです。
    + 変換する時は、変更後のファイル名を基準にします。
        + 文字数が変更前のファイル名と合うように、「*」や「?」の部分を変更前のファイルからコピーします。
    + 「.」に達すると、「.」の手前に文字を入れようとします。

**出来ない事と留意点
o ファイル名の先頭を単純に削除する事は出来ません。
    + 「rename a1* b*」を実行すると、a1.txtb1.txt になります。
o ファイル名の先頭を単純に追加する事も出来ません。
    + 変更後の方が置き換える文字が長い時は、足りない部分を置き換えます。
    + 「rename 私の* ミクさんの*」を実行すると、私のネギ.txtミクさんの.txt になります。
o この他、「.」を複数入れた、人工的なファイル名については、例外があるかもしれません。(= 調査していません)


**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o 0 = 成功
o 1 = エラー
    + 「指定されたファイルが見つかりません。」 = 変更前のファイル名が見つかりませんでした。
    + 「コマンドの構文が誤っています。」 = 変更後のファイル名は、パスの形では指定出来ません。もしくは、フォルダーに対して、ワイルドカード(「*」や「?」)は使用出来ません。
    + 「重複するファイル名が存在するか、またはファイルが見つかりませんでした。」 = ファイル名が重なりましたので、変換を中止します。


**** 使用例
o 「私の」で始まるテキストファイルを、「ミク」で始まるよう、変更します。
--------
ren 私の* ミク*
--------

    + コマンド名は、大文字で書く事も出来ます。
    + 置き換える文字の長さが同じ時は、素直に変換してくれます。
    + 「ren」は「rename」と書く事も出来ます。
        + Web検索すると REN が圧倒的に多かったですので、合わせてみました。

o 3文字目を「9」に変更します。
--------
ren ???* ??9*
--------

    + 但し、拡張子に達した時は、拡張子の手前の文字が変わります。
    + aa.txt は、 a3.txt になります。

o ファイル名に「ミク」を含むファイルの拡張子を、「negi」に変更します。
--------
ren c:\ミクさん\*ミク*.* *.negi
もしくは
ren c:\ミクさん\*ミク*.* *ミク*.negi
--------

    + 変換規則が良く分からない時は、下の書き方のように、変更しない部分の書き方を合わせる方法もあります。


**** 機能
o 指定したファイルやフォルダーの名前を変更します。
o 複数のファイルに対して、ファイル名の先頭や拡張子を一括変換する事も出来ます。
    + ワイルドカード(「*」や「?」)使用時、フォルダーは変換対象になりません。
    + また、フォルダーだけが見つかった時は、エラーになります。
o 複数ファイルの処理の途中でエラーになる時、それまでに変換したファイル名は戻りません。


**** メモ
o このコマンドは、デジタルカメラで写真を撮影する方達に、喜ばれているみたいです。
o このコマンド変更するのが難しい時は、バッチファイルを作る方法が簡単です。
    + 「DIR /B」コマンドで、変換したいファイル名の一覧を抜き出す事が出来ます。
    + そして、REN コマンドを発行するバッチファイルを作ってしまいます。
    + 私は AWK を使ってバッチファイルを作りましたが、FOR文で書く事も出来そうです。


**** 確認したバージョン
o Windows XP Service Pack 3


==
関連ページ:
    ▼Windowsコマンド。ファイルとフォルダー関連▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > REPLACE = ファイルを置き換える(= 差分コピーする)
    DEL = ERASE = ファイルを削除する
    ASSOC = ファイルの拡張子に関連付ける名前(= ファイルタイプ)を表示、変更する
(2011年2月8日変更。書式欄で表現の見直し。)

2011年2月6日日曜日

変数 RANDOM = 乱数。0以上 32767以下の値 - Windowsのコマンドプロンプト(bat,cmd)

Windowsコマンド。制御文と環境変数
○Windows XP
乱数です。毎回値が変わります。

o 0 以上 32767 以下の値が入っています = 最小値が 0、最大値が 32767 です。
o 擬似的な環境変数です。環境変数 RANDOM に値が入っていると、その値を表示します。


**** 書式
--------
%random%
--------

o 大文字小文字のどちらでも大丈夫です。


**** 戻り値 ( ERRORLEVELの値。確認分のみ )
o (設定なし) = この機能は、ERRORLEVELの値を更新しません。


**** 使用例
--------
echo ネギの予想価格 : %random% 円。
--------



**** 機能
o (擬似)乱数を、文字列の形で取得します。毎回値が変わります。
o 0 以上 32767 以下の値が入っています = 最小値が 0、最大値が 32767 です。
    + 100万回試した所、全ての値が出現しました。出現回数は、22回以上 37回以下です。

o コマンド拡張機能を無効にすると、この値は未定義状態になります。
o 擬似的な環境変数です。環境変数 RANDOM に値が入っていると、環境変数 RANDOM の値を表示します。


**** 確認したバージョン
o Windows XP Service Pack 3


==
関連ページ:
    ▼Windowsコマンド。制御文と環境変数▼ABC順
    ▼Windowsコマンド一覧▼ABC順
    ▼コマンドプロンプト画面
    ▼制作メモ
    > 変数 CMDEXTVERSION = コマンド拡張機能のバージョン番号
    変数 CMDCMDLINE = コマンドプロンプト画面を呼び出した時のコマンド文字列(= コマンドライン)
    環境変数 PATH = 実行可能ファイルを検索する場所

コマンドプロンプト画面を開く時にバッチファイルを動かす方法 - Windowsのコマンドプロンプト(bat,cmd)

画面操作とカスタマイズ
○Windows XP
ショートカットやバッチファイルから、CMD コマンドの /K オプションで初期設定用バッチファイルを呼び出す方法が簡単です。

o この方法は、他の画面に影響を与えません。
o ですので、他の人の環境で、自分好みの設定で動かしたい時にも便利です。


**** 手順
o 2つの方法があります。
    + 起動用のバッチファイルを作る方法
    + ショートカットに書く方法

** 起動用のバッチファイルを作る方法
o バッチファイルを2つ作って、同じフォルダーに置きます。
    + 1つ目のバッチファイルは、「cmd /k」コマンドを使って、初期設定用バッチファイルを呼び出します。
    + 2つ目のバッチファイルは、初期設定用バッチファイルです。
o そして、1つ目のバッチファイルを起動します。
    + 他の場所から起動する時は、1つ目のバッチファイルのショートカットを作る方法が簡単です。
    + ショートカットの作成手順は、右クリックから「ショートカットの作成(S)」
    + そして、作ったショートカットをダブルクリックするなどして、起動します。

o go.bat (名前は好きなものに変えて下さい)
--------
cmd /k go_init.bat
--------


o go_init.bat (名前は好きなものに変えて下さい)
--------
@echo off
color 3f
title ミクさんプロジェクト
prompt ミクさんに一言$G
echo ミクさんプロジェクトにようこそ
echo 今日は %DATE% 時刻は %TIME%
echo カレントディレクトリは %CD% です
echo on
--------


** ショートカットに書く方法
o 上の方法の1つ目のバッチファイルは、ショートカットに書く事も出来ます。
o その場合は、
    + 2つ目のバッチファイルのショートカットを作ります。右クリックから「ショートカットの作成(S)」
    + ショートカットのプロパティを開きます。右クリックから「プロパティ」
    + リンク先の欄を、1つ目のバッチファイルの内容で置き換えます。


**** 確認したバージョン
o Windows XP Service Pack 3


==
関連ページ:
    ▼画面操作とカスタマイズ
    ▼コマンドプロンプト画面の使い方
    ▼コマンドプロンプト画面
    ▼制作メモ
    > コマンドプロンプト画面の表示内容を、マウスだけでコピーする
    コマンドプロンプト画面をカスタマイズする
    コマンドプロンプト画面を終了する
    +
    コマンドプロンプト画面を開く
(2011年2月10日変更。冒頭の文と分類の見直し。内容の変更は無し)