LoginSignup
2
1

More than 5 years have passed since last update.

Windowsで大文字/小文字が異なるファイル名のファイルを上書きしても元のファイル名のまま

Posted at

これ以上簡潔なタイトルが思い浮かばなかった自分に落胆…orz

起きたこと

あるバッチプログラムが出力するファイルの名前に含まれる小文字を、
大文字に変えて出力するようにバッチプログラムを変更したのに、
なぜかファイル名が変わらなかった。

分かったこと

  • 小文字ファイル名のファイルに対し、大文字ファイル名の同名ファイルで上書きすると、ファイル名は元の小文字のまま。
  • 逆も同じ。(小文字⇒大文字 で 大文字のまま)
rem 小文字ファイル名の「aaa.txt」を作成
c:\temp>echo "before" > aaa.txt


rem 小文字ファイル名の「bbb.txt」を作成
c:\temp>echo "after" > bbb.txt


rem 確認
c:\temp>dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は 3C7A-85EC です

 c:\temp のディレクトリ

2019/04/01  23:19    <DIR>          .
2019/04/01  23:19    <DIR>          ..
2019/04/01  23:19                11 aaa.txt
2019/04/01  23:19                10 bbb.txt
               2 個のファイル                  21 バイト
               2 個のディレクトリ  169,053,376,512 バイトの空き領域


rem 「bbb.txt」を大文字ファイル名の「AAA.txt」としてコピー(上書き)
c:\temp>copy bbb.txt AAA.txt
AAA.txt を上書きしますか? (Yes/No/All): yes
        1 個のファイルをコピーしました。


rem 上書きしたのに「aaa.txt」のままだった
c:\temp>dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は 3C7A-85EC です

 c:\temp のディレクトリ

2019/04/01  23:19    <DIR>          .
2019/04/01  23:19    <DIR>          ..
2019/04/01  23:19                10 aaa.txt
2019/04/01  23:19                10 bbb.txt
               2 個のファイル                  20 バイト
               2 個のディレクトリ  169,078,181,888 バイトの空き領域


rem 念のため上書きされた「aaa.txt」の中身を確認
c:\temp>type aaa.txt
"after"


rem そもそもコマンドプロンプトでは大文字がすべて小文字に見えるだけかもしれないので
rem 念のため大文字ファイル名のファイルを作成
c:\temp>echo "uppercase" > CCC.txt


rem 確認…ちゃんと大文字「CCC.txt」だった
c:\temp>dir
 ドライブ C のボリューム ラベルは Windows です
 ボリューム シリアル番号は 3C7A-85EC です

 c:\temp のディレクトリ

2019/04/01  23:21    <DIR>          .
2019/04/01  23:21    <DIR>          ..
2019/04/01  23:19                10 aaa.txt
2019/04/01  23:19                10 bbb.txt
2019/04/01  23:21                14 CCC.txt
               3 個のファイル                  34 バイト
               2 個のディレクトリ  168,992,673,792 バイトの空き領域

Windowsでファイル名が大文字と小文字を区別しないのは知っていたのですが、
上書きされてもファイル名がキープされるのは知りませんでした。常識ですかね…?

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1