• 締切済み

ファイル名ソートにハイフン

エクスプローラーのファイル名順ソートについてなのですが、 ファイル名にハイフンが含まれていると、意図したようにソートされません。 たとえば、以下のファイルがあるとします。 a-1.txt a-2.txt a1.txt a2.txt ハイフンで区切って、大分類-小分類のような意味を持たせているので上記のように並んで欲しいのですが、以下のように並んでしまいます。 a1.txt a-1.txt a2.txt a-2.txt これがどういう並びなのか…、単にハイフンを無視でもなさそうだし、マイナスと認識と言うわけでもなさそうだし、ハイフンを無視して並べておいてから、ハイフンありを後に、という感じでしょうか…。 いずれにしても、ハイフンでグループ分けしたい場合にこれでは困ります。 (具体的にはCPANファイルのソート) 「数値として認識させる/文字列として認識させる」の設定方法NoStrCmpLogicalについては情報が多く見つかりましたが、上記のような問題の解決方法はないでしょうか。

  • SV576
  • お礼率83% (40/48)

みんなの回答

  • ebi-fry
  • ベストアンサー率45% (69/153)
回答No.5

問題解決になるかわかりませんが。 ファイルにカテゴリ属性を付けるのはダメですかね? すでに試されていたり、的外れだとらちょっと恥ずかしいので(笑) 概要だけ書かせて頂きます。 ファイル右クリック→プロパティ→概要→カテゴリに姓名を入力。 エクスプローラの表示→グループ表示でカデゴリ順にソート そうすると以下のようにソートは可能でした。 ---------------- ooki(カテゴリ)  ooki-jiro.txt  ooki-taro.txt ookita  ookita-jiro.txt  ookita-taro.txt ----------------

SV576
質問者

お礼

ご回答ありがとうございます。 なるほど確かに手の一つかもしれませんね。全然的外れなんかじゃないです。ありがとうございます。 手間やミスを考えれば、ファイル名から自動的に属性をセットするスクリプトなど作っておくと良さそうですね。 ただ難点は、これNTFS独自の機能なんですね…。 ということは、NTFSじゃないディスクやCDや外部メモリに保存、それに圧縮したら消えてしまう(少なくとも一般的フォーマットでは)という問題もあります…。 しかしとにかく、なにしろせっかくファイル名で完璧に整理されているのに…、っていう解せない思いがあるんですよねぇ…苦笑 ハイフンじゃなくてアンダーバーだとOKっていうのも妙なんです。 これって珍しいケースとは思えないんですが、今まで話題になってない、というかネット上でも情報がないのも、ちょっと不思議ですね。

noname#79209
noname#79209
回答No.4

直接の回答ではありませんが、 できない状況で思い悩むより サブフォルダごとに分けて分類する方が 現実的なのでは?

SV576
質問者

補足

ご回答ありがとうございます。 問題が解決できていない現在は、おっしゃるようにサブフォルダに分けたり、エクスプローラーではなくCygwinベースのツールなど、あるいはLinux上でで管理するようにしています。 何度も繰り返していますように、既存のファイル、具体的にはCPANのファイルなど、すなわち私が勝手に名前を変えたりできない(すべきでない)ものなので。 もちろん、できることなら解決したいので、もう少し情報を待ってみたいと思います。よろしくお願いいたします。

  • violet430
  • ベストアンサー率36% (27472/75001)
回答No.3

マイクロソフトに聞いた方が良いのでは?

SV576
質問者

補足

ありがとうございます。 それはまた…、Q&Aサイト全否定のような斬新なご意見で…(苦笑) でもそうですね、とりあえず、他の質問もそうであるように、どなたかご存知ならと思い質問させていただいたわけですから、それで解決できなければ、ご指示通りにMSに聞いてみますね。

  • LiRAU
  • ベストアンサー率67% (126/187)
回答No.2

回答になっていない可能性がありますので参考程度にして下さい。 >この奇妙な(?)仕様、なんとかならないですかねぇ… 私の環境ではデフォルトの状態で下記のようにソートされました(XP Home と Pro) 質問者さんのPCは2000ではなくXPなのですよね。 質問者さんはこの様に並べたいのですよね(違ってたらごめんなさい) a1.txt a2.txt a-1.txt a-2.txt レジストリに NoStrCmpLogical を書き加えていると言う前提で。 下記のような並びになるのはレジストリに NoStrCmpLogical がある為だと思われます。 ですので NoStrCmpLogical を試しに削除してOS再起動で意図したような並びになるように思います(一応検証はしました) 何らかの意図があって今は「文字列順」に並べてあり、それをデフォルト設定の「数値順」にすれば良いかと思います。 a1.txt a-1.txt a2.txt a-2.txt ファイル名の表示順序を変更する(NoStrCmpLogical) http://www.atmarkit.co.jp/fwin2k/win2ktips/342xpsort/xpsort.html

SV576
質問者

補足

ご回答ありがとうございます。 なかなかうまく説明できずに申し訳ありません…。 しかも例が良くありませんでしたね…。あらためて補足させてください。 この例も良いかどうか怪しいですが… 大木さんと大北さんという家族があります。もちろん別の家族(別世帯)です。両方に、太郎と二郎がいます。 大木太郎、大木二郎、大北太郎、大北二郎の4人の名前をファイル名にします。 OOKI-TARO.txt OOKI-JIRO.txt OOKITA-TARO.txt OOKITA-JIRO.txt エクスプローラーでは、ちょうど上記のように、大木ファミリーと大北ファミリーはそれぞれ固まって表示して欲しいのです。 もちろんOOKITAが上でも良いし、太郎が後でも順番はとりあえず構わないので、ハイフンより前の部分が同じものが固まって表示されるのが理想です(というか自然だと思います)。 ところが、私の環境WinXP Proでは、以下のようにソートされます。 OOKI-JIRO.txt OOKITA-JIRO.txt OOKI-TARO.txt OOKITA-TARO.txt 良く見ると、ハイフンを無視して文字コード順になっているように思えます。 DOSのDIRコマンドで /on オプションをつけた結果も同じでした。 また、念のため、ご指摘のようにNoStrCmpLogicalを設定してみましたが、結果は同じでした。 ちなみに、NoStrCmpLogicalを設定すると、確かにおっしゃるとおりa1とa-1の並びはご指摘のようになりますね。ただこれはたまたま数値と認識する部分としない部分が同じだったので、例として良くありませんでした。すみません。 ついでに言えば、おっしゃっているケースでも、本当に文字コード順であれば、 a1.txt a2.txt a-1.txt a-2.txt ではなく、ハイフンが先に来るはずですよね。 今回の例を文字コード順にすると、こうなるはずです。 OOKI-JIRO.txt OOKI-TARO.txt OOKITA-JIRO.txt OOKITA-TARO.txt Linux環境のlsコマンドでは、ちゃんと上記のように並びました。 この説明でうまく伝わったかどうか不安ですが…、どうでしょう。何か御存じないでしょうか。

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

ファイル名順とは文字コード順で並べ替えることですから、当然といえば当然の結果です 数字として認識させる方法は  a1.txt  a0002.txt   a03.txt のような場合に有効です 結論   ファイル名を直しましょう 自分は大分類と小分類は  a1.txt  a1-.txt  a2.txt  a2-.txt  a2--.txt などとしています

SV576
質問者

補足

ご回答ありがとうございます。 ですが…、せっかく回答していただいたのに申し訳ないのですが、ちょっと違います… まず、 > ファイル名順とは文字コード順で並べ替えることですから、当然といえば当然の結果です いいえ違います。文字コード順で並べたら、こうなります↓ こうなって欲しいのに、ならないんです。 a-1.txt a-2.txt a1.txt a2.txt > 数字として認識させる方法は ... > のような場合に有効です 数値として認識させる方法は今回の件と関係ありません。むしろ逆、文字列すなわち文字コード順に並べたいのに、できない、その参考情報として、「数値として認識させる方法」ならWeb上でたくさん見つかると紹介しただけです。 紛らわしくてすみません… > 結論 >   ファイル名を直しましょう ううむ…、結論と言われても…、できないので困ってるんです…^^; 質問にも書きましたが、CPANファイルなど、もともとハイフン区切りになっているので。 なんだか逆に指摘ばかりでごめんなさい。 この奇妙な(?)仕様、なんとかならないですかねぇ…

関連するQ&A

  • Windows7 のエクスプローラで、自動ソートを無効にする方法は無い

    Windows7 のエクスプローラで、自動ソートを無効にする方法は無いのでしょうか。 Windows7 のエクスプローラ右側の表示で、下記のようなファイルがある際に、  aaa.txt  zzz.txt ファイル ccc.txt を追加すると、  aaa.txt  ccc.txt  zzz.txt と、後から追加したファイルを自動ソートして表示されてしまいます。 WindowsXP のように、後から追加したファイルを下記のように後ろに並ぶように設定する方法はないのでしょうか。  aaa.txt  zzz.txt  ccc.txt 自動的にソートされてしまうと、フォルダ内にファイルを作成した際に、どのファイルが新しいファイルかわからなくなってしまうため、WindowsXP のように、後から追加したファイルが並びの後ろに表示したいためです。 また、プログラムなどでファイルが作成されたときにも同じように後ろに並んでくれれば、どのファイルが作成されたものかみ分けがつきやすいために、WindowsXP のようにファイルの並びの後ろに表示できないものかと思っています。 初歩的な質問で申し訳ありませんが、よろしくお願いします。

  • powershellでのソート

    powershellでのソート処理に関して教えてください。 list.csv F1,F2,F3 file01.txt,c:\dirA,100kb file20.txt,c:\dirC,100kb file100.txt,c:\dirG,100kb file200.txt,c:\dirG,100kb CSVで上記の様なデータがあり、F1のデータにおいて、 ファイル名の数字部分でソートしたいのですが、 意図したソートができません。 数字を考慮してのソートってどうやればよいでしょうか。 PS c:\>Get-Content .\list.csv|ConvertFrom-CSV |Sort-Object f1 F1 F2 F3 -- -- -- file01.txt c:\dirA 100kb file100.txt c:\dirG 100kb file20.txt c:\dirC 100kb file200.txt c:\dirG 100kb file01.txt→file02.txt→file100.txt→file200.txtの並びでソートさせたいです。 よろしくお願いします。

  • エクスプローラでの名前によるファイル名ソート方法

    例えば、 baseball1.txt football1.txt Baseball2.txt Football2.txt という4つのファイルを、エクスプローラで名前によるソートをかけた場合には、 baseball1.txt Baseball2.txt football1.txt Football2.txt …と表示されます。私は今までこのようなソートはアスキーコード順に次のようにソートされると思ってました。 Baseball2.txt Football2.txt baseball1.txt football1.txt このようなWindowsでの名前によるソートの基本的な方法を解説した良いweb site があれば教えてください。よろしくお願いします。

  • ファイルの並び順

    ファイルの並び替えについて質問です とあるフォルダのファイルを名前順でソートしたところ A_04a1.txt A_0101.txt A_0102.txt A_0201.txt A_0202.txt A_0301.txt とソートされます。 何故、このような並びになるのでしょう OSはWin7(64bit)です 何故 A_0101.txt A_0102.txt A_0201.txt A_0202.txt A_0301.txt A_04a1.txt のように並ばないのでしょうか 宜しくお願い致します。

  • Wndows 全角数字を含むファイル名ソート

    Windows XP エスプローラ画面での、ソート論理がわからず、非常に悩んでいます。 例えば、「数字は半角全角区別なく、数値の大小でソートされる」 と思っていたのですが(間違い?)、以下のようなファイル名では、その並びとなりません。 例) 5個のファイル名「1、1、2、2、100」でのソート結果  1  1  2 100  2   (↑何故か100が2よりも上にきている) ・ソート時の全角数字の取り扱いはどのようになるのでしょうか? ・また、Windows XPでのソート論理詳細の情報などあれば、 どなたか教えていただけないでしょうか??

  • サイズの大きなテキストファイルのSORT

    3GB超のテキストファイルをSORTコマンドでソートしたいのですが、空(0KB)の出力ファイルが出来て処理が終わってしまいます。 数KB~数MBのテキストでは正常にソートされるのですが、GB単位になると上記の現象が発生します。 環境はWindowsNTServer4.0です。 ソートできるファイルサイズの上限、ディスクの空き容量等、制限があるのでしょうか? また、上記の現象を回避し、正常にソートする方法をご存知な方がいらっしゃいましたら、どうぞご教授ください。 宜しくお願い致します。 ↓ソートコマンドは至ってシンプルです。 sort /+1 < TEST.dat > OUT.txt

  • ファイルのソートについて

    ファイルのソートについての質問です。 今度、知人に写真をいれたDVDを渡そうと思っています。 イベント事にフォルダ分けはしてあるのですが、色々なカメラで撮られた写真があるので名前でソートすると時系列がおかしくなってしまいます。 撮影日時でソートすれば時系列通り見ることができるのですが、DVDに焼くとなるとどうして良いのか分かりません。 DVDを読み込む→フォルダを開く→時系列の早いものから並んでいる と言うのが理想なのですが・・・・。 私はWindows7ですが、相手方のOS等はわかりません。 どのような方法でもいいので(例えば撮影日時の並び方でリネーム)良い方法があれば教えて下さい!!

  • ファイル名だけを取り出す方法

    WindowsXP Office2003 下記のようにフォルダ分けされ保存しているファイルがあります。 数ある階層のフォルダを無視し、そのファイル名だけを取り出してExcelのデータベースにしたいのですができるでしょうか? できれば特殊なソフトなどを使わない方法を知りたいです。  大分類フォルダ1  |___中分類フォルダ1  |    |________ファイル名1  |    |  |    |________ファイル名2  |  |___中分類フォルダ2  |    |________ファイル名3  |    |  |    |________ファイル名4  |  |  大分類フォルダ2  |___中分類フォルダ1  |    |________ファイル名5  | ~~~~~~~~~~~~~~~~~~~~~~~~~~~        ファイル名1  ファイル名2  ファイル名3  ファイル名4  ファイル名5  ~~~

  • sortコマンドについて

    33 333 22 33 333 33 33 333 11 33 222 11 33 111 11 44 111 11 44 222 11 11 111 11 11 222 11 上記のファイルを以下のようにソートしたいのですが どのようにすればよいでしょうか? 第一ソートキー 1~2番目の昇順 第二ソートキー 4~6番目の降順 第三ソートキー 8~9番目の昇順 (ちなみにspaceはたまたまspaceで区切り文字ではありません) 11 222 11 11 111 11 33 333 11 33 333 22 33 333 33 33 222 11 33 111 11 44 222 11 44 111 11 以下の試して見ましたがうまくいきませんでした。 sort -k 1.1,1.2 -r -k 1.4,1.6 -k 1.8,1.9 test.txt 宜しくお願い致します。

  • フォルダを無視したファイルのソート

    更新日付が1年以上前の古いファイルを全て削除しようと思います。 エクスプローラーから更新日付でソートすればいいのですが、フォルダの数が半端なく多くまた深いツリーになっているため、フォルダを1つずつあけてソートし削除するのは大変な労力です。 フォルダの垣根を無視し、指定フォルダ以下の全ファイルをソートし、さらにその画面からまとめて削除できるような方法はないでしょうか?