アニメ『約束のネバーランド』
ジャンプ漫画ってことは知ってましたが、読んだことありません。内容を知らずにアニメ1話に挑みました。どうせジャンプなんだろうなあ、と考えていたので、子供たちが訓練されて超人になって、特殊能力なんてみについて、バトルが始まるに違いないと思ってたのですが、1話の最後に驚愕。マジっすか。これはまとめて視聴せねば、と録画を貯めてる最中です。
今回は、setCaseSensitiveInfoで設定を変更して、大文字小文字区別のファイル名が使えるか試してみます。
今フォルダの中には、前回作ったファイルが1つある状態です。
C:\Users\takk2\tmp>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 6C92-6118 です C:\Users\takk2\tmp のディレクトリ 2019/02/17 21:29 <DIR> . 2019/02/17 21:29 <DIR> .. 2019/02/17 23:08 28 test.txt 1 個のファイル 28 バイト 2 個のディレクトリ 197,078,609,920 バイトの空き領域 C:\Users\takk2\tmp>
中身は変わってませんね。
C:\Users\takk2\tmp>type test.txt B D F H J L N P R T V X Z C:\Users\takk2\tmp>
ファイル名が大文字、小文字区別されているか、copyコマンドで確認してみましょう。
区別されていたら、コピーが成功するはずです。
C:\Users\takk2\tmp>copy test.txt TEST.TXT ファイルを同じファイルにコピーすることはできません。 0 個のファイルをコピーしました。 C:\Users\takk2\tmp>
コピーできませんね。ってことは、大文字、小文字の区別はされてません。
CaseSensitiveInfoの状態を、確認するコマンドもあるので、使ってみましょう。
C:\Users\takk2\tmp>fsutil file querycasesensitiveinfo . ディレクトリ C:\Users\takk2\tmp の大文字と小文字を区別する属性が無効になっています。 C:\Users\takk2\tmp>
属性が無効になっている、つまり大文字小文字は区別されていないですね。
では、設定変更してみます。
C:\Users\takk2\tmp>fsutil file setcasesensitiveinfo . enable エラー: この要求はサポートされていません。 C:\Users\takk2\tmp>
なぬ? 変更できないようです。
管理者権限で起動したcmd上で再度確認してみます。
C:\Users\takk2\tmp>fsutil file setcasesensitiveinfo . enable エラー: この要求はサポートされていません。 C:\Users\takk2\tmp>
結果は、同じでした。
disableの方は、設定できるでしょうか。
C:\Users\takk2\tmp>fsutil file setcasesensitiveinfo . disable ディレクトリ C:\Users\takk2\tmp の大文字と小文字を区別する属性が無効になっています。 C:\Users\takk2\tmp>
実行できました。まあ、設定の変化はないですが。
ちなみに、これは管理者権限なしのcmd上でも実行できました。
Windowsの機能の有効化または無効化
Windows Subsystem for Linuxにチェックをいれてみます。
C:\Users\takk2\tmp>fsutil file setcasesensitiveinfo . enable ディレクトリ C:\Users\takk2\tmp の大文字と小文字を区別する属性が有効になっています。 C:\Users\takk2\tmp>
実行できました。WSLさえ有効になっていれば、管理者権限でcmdを起動する必要もありませんでした。
では、もう一度、以下のファイルを大文字のファイルにコピーしたいと思います。
C:\Users\takk2\tmp>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 6C92-6118 です C:\Users\takk2\tmp のディレクトリ 2019/02/22 19:50 <DIR> . 2019/02/22 19:50 <DIR> .. 2019/02/17 23:08 28 test.txt 1 個のファイル 28 バイト 2 個のディレクトリ 197,132,017,664 バイトの空き領域 C:\Users\takk2\tmp>
コピーコマンド。
C:\Users\takk2\tmp>copy test.txt TEST.TXT ファイルを同じファイルにコピーすることはできません。 0 個のファイルをコピーしました。 C:\Users\takk2\tmp>
結局できないんですね。
では、wslを使ったコピーではどうか。
C:\Users\takk2\tmp>wsl cp test.txt TEST.TXT C:\Users\takk2\tmp>
できました。
ファイルを確認してみます。
C:\Users\takk2\tmp>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 6C92-6118 です C:\Users\takk2\tmp のディレクトリ 2019/02/22 20:24 <DIR> . 2019/02/22 20:24 <DIR> .. 2019/02/22 20:24 28 TEST.TXT 2019/02/17 23:08 28 test.txt 2 個のファイル 56 バイト 2 個のディレクトリ 197,514,973,184 バイトの空き領域 C:\Users\takk2\tmp>
つまり、copyコマンドではじかれるってことなんでしょうか。
powershellでも試してみます。
C:\Users\takk2\tmp>powershell Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\Users\takk2\tmp> cp test.txt Test.txt cp : 項目 C:\Users\takk2\tmp\test.txt をそれ自体で上書きすることはできません。 発生場所 行:1 文字:1 + cp test.txt Test.txt + ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (C:\Users\takk2\tmp\test.txt:String) [Copy-Item], IOException + FullyQualifiedErrorId : CopyError,Microsoft.PowerShell.Commands.CopyItemCommand PS C:\Users\takk2\tmp>
こちらも実行できませんでした。
fsutil file SetCaseSensitiveInfoコマンドは、wslのためだけにあるのでしょうか。まあ、そのあたりは謎のままですが、使い方は分りました。
コメント