ラベル コマンドプロンプト-コマンド の投稿を表示しています。 すべての投稿を表示
ラベル コマンドプロンプト-コマンド の投稿を表示しています。 すべての投稿を表示

2012年1月4日水曜日

[コマンドプロンプト] FC


■構文
FC [/A] [/C] [/L] [/LBn] [/N] [/OFF[LINE]] [/T] [/U] [/W] [/nnnn]
[ドライブ1:][パス1]ファイル名1 [ドライブ2:][パス2]ファイル名2

FC /B [ドライブ1:][パス1]ファイル名1 [ドライブ2:][パス2]ファイル名2


■説明
2 つのファイルまたはファイル セットを比較し、相違点を表示します。
最初の構文は、テキストモードでの比較で
2番目の構文は、バイナリモードでの構文となります。
ただし、バイナリモードでの比較はCOMPコマンドを使った方がオプション指定できて便利よいです。
/A相違する各部分の 1 行目と最後の行だけを表示します。
/Bバイナリの比較を実行します。
/C英字の大文字と小文字を区別しません。
/Lファイルを ASCII テキストとして比較します。
/LBn連続する最大不一致行を指定行数に設定します。
/NASCII の比較で行番号を表示します。
/OFF[LINE]オフライン属性が設定されたファイルをスキップしません。
/Tタブをスペースに変換しません。
/UUnicode テキスト ファイルとしてファイルを比較します。
/W連続した空白 (タブとスペース) を 1 つのスペースに圧縮して比較します。
/nnnn不一致発見後に確認する、一致すべき連続行数を指定します。
[ドライブ1:][パス1]ファイル名1比較する最初のファイルまたはファイル セットを指定します。
[ドライブ2:][パス2]ファイル名2比較する 2 番目のファイルまたはファイル セットを指定します。

■サンプルコード
・テキストファイルを比較してみる(同じ内容のファイルを比較してみる)
C:\test>fc test1.txt test2.txt
ファイル test1.txt と TEST2.TXT を比較しています
FC: 相違点は検出されませんでした



・テキストファイルを比較してみる(違う内容のファイルを比較してみる)
C:\test>fc test1.txt test3.txt
ファイル test1.txt と TEST3.TXT を比較しています
***** test1.txt
a
b
c
d
e
***** TEST3.TXT
a
bbb
ccc
ddd
e
*****

同じ行(1行目)
異なる行(2-4行目)
同じ行(5行)
という構成で出力される。
最初or最後or全ての行が異なる場合、状況に応じて同じ行の出力が変わります。


C:\test>fc test1.txt test3.txt
ファイル test1.txt と TEST3.TXT を比較しています
***** test1.txt
a
b
c
d
e
***** TEST3.TXT
aaa
bbb
ccc
ddd
e
*****

異なる行(1-4行目)
同じ行(5行目)


・全ての行が異なる場合の出力結果
C:\test>C:\test>fc test1.txt test3.txt
ファイル test1.txt と TEST3.TXT を比較しています
***** test1.txt
a
b
c
d
e
***** TEST3.TXT
aaa
bbb
ccc
ddd
eee
*****

異なる行(1-5行目)


・複数箇所が異なる場合の出力結果
C:\test>C:\test>fc test1.txt test3.txt
ファイル test1.txt と TEST3.TXT を比較しています
***** test1.txt
a
b
***** TEST3.TXT
aa
b
*****

***** test1.txt
d
e
***** TEST3.TXT
d
ee
*****



・異なる行が該当ファイル内のどこかわかりづらいので行番号をつける
C:\test>fc test1.txt test3.txt /n
ファイル test1.txt と TEST3.TXT を比較しています
***** test1.txt
    1:  a
    2:  b
***** TEST3.TXT
    1:  aa
    2:  b
*****

***** test1.txt
    4:  d
    5:  e
***** TEST3.TXT
    4:  d
    5:  ee
*****



・画像を比較する(同じファイルの場合)
C:\test>fc test1.jpg test2.jpg /B
ファイル test1.jpg と TEST2.JPG を比較しています
FC: 相違点は検出されませんでした

jpgは、バイナリモードの既定に入っていないので自分でバイナリスイッチをつける。


・画像を比較する(異なるファイルの場合)
C:\test>C:\test>fc test1.jpg test3.jpg /B
ファイル test1.jpg と TEST3.JPG を比較しています
0000000C: 02 01
0000000D: 00 01
0000000F: 64 60
00000011: 64 60
00000015: EC E1
00000017: 11 16
00000018: 44 45
00000019: 75 78
0000001A: 63 69
0000001B: 6B 66
0000001C: 79 00
0000001E: 01 49
0000001F: 00 49
(大量にデータが出力されるので省略します。)
00000EC9: BB 6F
00000ECA: FA CE
00000ECB: 49 88
00000ECC: 4A ED
00000ECD: 4B 8A
00000ECE: 85 CA
00000ECF: 01 18
00000ED0: 29 A8
00000ED1: 20 E3
00000ED2: 7B 9C
00000ED3: 9D D0
00000ED4: DD 07
00000ED5: C8 FF
00000ED6: 34 D9
FC: test1.jpg は TEST3.JPG より長いファイルです


上記のように大量に出力されます。


・画像を比較し出力する(異なるファイルの場合)
C:\test>fc test1.jpg test3.jpg /B >C:\Output.txt


[コマンドプロンプト] DIR


■構文
DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]ソート順]] [/P] [/Q] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4]


■説明
ディレクトリ中のファイルとサブディレクトリを一覧表示します。
[ドライブ:][パス][ファイル名]一覧表示するドライブ、ディレクトリ、またはファイルを指定します。
/A指定された属性のファイルを表示します。
:属性D ディレクトリ
R 読み取り専用
H 隠しファイル
A アーカイブ
S システム ファイル
- その属性以外
/Bファイル名のみを表示します (見出しや要約が付きません)。
/Cファイル サイズを桁区切り表示します。これは既定の設定です。/-C とすると桁区切り表示されません。
/D/W と同じですが、ファイルを列で並べ替えた一覧を表示します。
/L小文字で表示します。
/Nファイル名を右端に表示する一覧形式を使用します。
/Oファイルを並べ替えて表示します。
:ソート順N 名前順 (アルファベット)
S サイズ順 (小さいほうから)
E 拡張子順 (アルファベット)
D 日時順 (古いほうから)
G グループ (ディレクトリから)
- 降順
/P1 画面ごとに停止して表示します。
/Qファイルの所有者を表示します。
/S指定されたディレクトリおよびそのサブディレクトリのすべてのファイルを表示します。
/Tどのタイムフィールドを表示するか、または並べ替えに使用するかを指定します。
:タイムフィールドC 作成
A 最終アクセス
W 最終更新
/Wワイド一覧形式で表示します。
/Xこのオプションは MS-DOS 形式以外のファイル名に対する短い名前を表示します。長い名前の前に短い名前を表示する点を除けば、/N オプションと同じです。短い名前がない場合は、ブランクになります。
/44 つの数字で年を表示します。

■サンプルコード
以下のフォルダ状態の物を使ってDIRコマンドのテストをしてみます。


・オプションなし(カレントディレクトリの情報を取得)
C:\test>dir
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 40A6-A3FB です

 C:\test のディレクトリ

2012/01/04  09:14              .
2012/01/04  09:14              ..
2012/01/04  09:20                 0 ファイル01.txt
2012/01/04  09:19                 1 ファイル02.txt
2012/01/04  09:18               810 ファイル03.txt
2012/01/04  09:17                 0 ファイル04.txt
2012/01/04  09:16                 0 ファイル05.txt
2012/01/04  09:20              フォルダ01
2012/01/04  09:19              フォルダ02
2012/01/04  09:18              フォルダ03
2012/01/04  09:17              フォルダ04
2012/01/04  09:16              フォルダ05
               5 個のファイル                 811 バイト
               7 個のディレクトリ  200,254,664,704 バイトの空き領域


・名前だけ取得したい。
C:\test>dir /B
ファイル01.txt
ファイル02.txt
ファイル03.txt
ファイル04.txt
ファイル05.txt
フォルダ01
フォルダ02
フォルダ03
フォルダ04
フォルダ05


・更新日時の古い順で、名前だけ取得したい。
C:\test>dir /B /O:D
ファイル05.txt
フォルダ05
ファイル04.txt
フォルダ04
フォルダ03
ファイル03.txt
フォルダ02
ファイル02.txt
ファイル01.txt
フォルダ01


・更新日時の新しい順で、名前だけ取得したい。
C:\test>dir /B /O:-D
フォルダ01
ファイル01.txt
ファイル02.txt
フォルダ02
ファイル03.txt
フォルダ03
フォルダ04
ファイル04.txt
フォルダ05
ファイル05.txt


・作成日時の古い順で、名前だけ取得したい。
C:\test>dir /B /O:D /T:C
フォルダ01
ファイル01.txt
フォルダ02
ファイル02.txt
フォルダ03
ファイル03.txt
フォルダ04
ファイル04.txt
フォルダ05
ファイル05.txt


・作成日時の新しい順で、名前だけ取得したい。
C:\test>dir /B /O:-D /T:C
ファイル05.txt
フォルダ05
ファイル04.txt
フォルダ04
ファイル03.txt
フォルダ03
ファイル02.txt
フォルダ02
ファイル01.txt
フォルダ01


・フォルダのうち、作成日時の古い順で、名前だけ取得したい。
C:\test>dir /B /O:D /T:C /A:D
フォルダ01
フォルダ02
フォルダ03
フォルダ04
フォルダ05


・ファイルのうち、作成日時の古い順で、名前だけ取得したい。
C:\test>dir /B /O:D /T:C /A:A
ファイル01.txt
ファイル02.txt
ファイル03.txt
ファイル04.txt
ファイル05.txt


・ファイルのうち、作成日時の古い順で、名前だけ取得して、Cドライブ直下にoutput.txtとして出力したい
C:\test>dir /B /O:D /T:C /A:A >C:\output.txt


・C:\Sampleフォルダ内、作成日時の古い順で、サブフォルダも含め表示
C:\test>dir C:\Sample /B /O:D /T:C /S
C:\Sample\1
C:\Sample\1\21
C:\Sample\1\22
C:\Sample\1\21\3
C:\Sample\1\21\tes1.txt
C:\Sample\1\21\3\4
C:\Sample\1\22\3


[コマンドプロンプト] コマンド一覧


VBAやVBScriptとあわせて使うと便利なコマンドだけメモ書きしておきます。
[D]
DIRディレクトリ中のファイルとサブディレクトリを一覧表示します
[F]
FC2 つのファイルまたはファイル セットを比較し、相違点を表示します