[NI-Lab.]
DOSプロンプトとかコマンドプロンプトとか。
- DOS窓(コマンド プロンプト) にて、[Alt] + [Enter] で全画面表示になる。戻すときも [Alt] + [Enter] で。
- [DOS]バッチファイルに命令をだらだらと長く書いてしまうのを防ぐ方法
- [VisualC++]コンソール画面を出さないアプリケーションを作る
\\?\に続けてフルパスでファイルやディレクトリを指定することで、末尾半角スペースや末尾ドットのファイルを扱える。
- 末尾にピリオドが含まれるファイルの削除ができない : 投稿 : HotFix? Report BBS
- NTFS ファイル システム上のファイルまたはフォルダを削除できない
- http://support.microsoft.com/default.aspx?scid=kb;ja;320081
- >原因 5 : ファイルに Win32 名前空間で予約された名前が含まれている
- >ファイル名に Win32 名前空間で予約された名前 ("lpt1" など) が含まれていると、ファイルを削除できない場合があります。この問題を解決するには、Win32 プログラム以外のプログラムを使用して、ファイルの名前を変更します。使用できるツールには、適切な内部構文を使用してファイルを処理する POSIX ツールなどがあります。
- >原因 6 : ファイル名に Win32 名前空間では無効な名前が含まれている
- >ファイル名に無効な名前が含まれる場合 (ファイル名の末尾に空白やピリオドが含まれる場合やファイル名が空白のみで構成されている場合) には、ファイルを削除することができない場合があります。この問題を解決するには、適切な内部構文を使用するツールを使用してファイルを削除します。以下のような "\\?\" 構文を特定のツールと一緒に使用して、これらのファイルを操作することもできます。
- >del "\\?\c:\path_to_file_that contains a trailing space.txt "
- >この問題の原因は、「原因 4」に似ています。しかし、標準の Win32 構文を使用して、名前の末尾に空白やピリオドのあるファイルを開くと、実際のファイルが開く前に、末尾の空白やピリオドは削除されます。そのため、同じフォルダに "AFile.txt" と "AFile.txt " (ファイル名の末尾に空白が 1 つあることに注意してください) という名前の 2 つのファイルがある場合に、標準の Win32 呼び出しを使用して 2 番目のファイルを開くと、代わりに 1 番目のファイルが開かれます。同様に、単に " " (空白文字が 1 つ) という名前のファイルがあり、標準の Win32 呼び出しを使用してこのファイルを開くと、代わりにそのファイルの親フォルダが開かれます。この状況でこれらのファイルのセキュリティ設定を変更すると、変更が行えないか、意図しない他のファイルの設定を変更してしまう場合があります。この現象が発生すると、実際には制限された ACL を持つファイルへのアクセス許可を持つように見える場合があります。
- GetVolumePathName?() 関数が \\?\ で始まるパスをサポートしない
- http://support.microsoft.com/default.aspx?scid=kb;ja;JP313006
- >Unicode バージョンの一部の関数は、パスが \\?\ プレフィックスを持っている場合に、MAX_PATH の長さを超えるパスを許可します。ただし、Unicode バージョンの GetVolumePathName? 関数は、ファイル パスへの \\?\ プレフィックスをサポートしません。GetVolumePathName? 関数を使用するとき、ファイル名の長さの制限は MAX_PATH になります。
- >GetVolumePathName? 関数は、\\?\ プレフィックスを持つパスを \\server_name\share_name として間違って解釈します (ここで server_name はサーバー名で、share_name は共有名です)。たとえば、パスが \\?\UNC\server_name\share_name で始まる場合、GetVolumePathName? 関数はパスの長さに関係なくボリュームのマウント位置として \\?\UNC を間違って返します。