- 締切済み
フォルダ内の韓国語のファイル名の一覧を作成するには
エクスプローラーでフォルダの中を見ると 韓国語の文字を含むファイル名の 韓国語の文字が正しく表示されているのに コマンドプロンプトから dirを実行すると 韓国語の文字が■で表示されてしまいます。 コマンドプロンプトから dirを実行して 韓国語の文字が正しく表示させるようにすることは できるのでしょうか。 したいことは dir /b > list.txt で、フォルダの中にある 韓国語の文字を含むファイル名の一覧を 作成したいのですが、生成された list.txtは、韓国語の文字が?の表示になって うまくいきません。 フォルダの中にある 韓国語の文字を含むファイル名の一覧を 作成するにはどうすればよいでしょうか。 (Windows7 日本語)
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- qq149598100
- ベストアンサー率59% (416/703)
No.2です。 もう既に解決したのだと思っていました。 unicode(UTF-8)のコードページでないとうまくいかないですね。ここまでは確認できませんでした。 ”CP_UTF8” 65001 Application Compatibility Toolkitで使えるコードページとしてMSより明示されていました。 https://msdn.microsoft.com/ja-jp/library/aa288104(v=vs.71).aspx >何が起きているのかよく分からないのですが あらぬとことで引っかかりましたね。 あなたが実行したカレントフォルダの位置がまずかったのです。 恐らく”dir /b >???.lst”を実行したのでしょう。 読んで字の如く、 >The system cannot write to the specified device. リダイレクト先がシステムフォルダであるそのフォルダには、権限がないので書き込めないのですよ。 DOS窓を開いて cd \document\lesson\Youtube などを実行し、書き込める権限があるフォルダに移動してから作業して下さい。 >このようなソフトを探してみましたが見つかりませんので それは探し方の問題だと思いますが…。 すぐ見つかりましたよ?他にもまだあると思います。 http://www.vector.co.jp/soft/dl/winnt/util/se510104.html ハングル文字も取得できます。
- mdmp2
- ベストアンサー率55% (438/787)
NO.3 です。 「4つのステップを実行しないいけない」ということですね。 1 文字コードを変更するコマンド cmd /K "chcp 20949" 2 フォントを「ラスターフォント」から「Consolas」などに変更 3 ファイルのリストを作成するコマンド dir C:\document\lesson\Youtube\ 4 フォントを「ラスターフォント」にもどす。 コマンドプロンプトのフォントに関して知識がありませんので、お役に立てそうもありませんが、 ■設定されたフォントによっては dir C:\document\lesson\Youtube\ を実行できないことがあるが、dir・・・を実行できる「ラスターフォント」では、韓国文字が文字化けする。 ということに集約できるとすると、韓国語フォントをコマンド・プロンプトに追加してみてはいかがでしょうか。コマンド・プロンプトにフォントを追加する方法はネットで紹介されています。 例えば、http://pooh.gr.jp/?p=229 ■上記のStep 3 で、コマンドプロンプト上で表示するのではなく、テキストファイルにリダイレクトした場合は、どうなるでしょうか?文字化けしていると思いますが、メモ帳の書式でフォントを変更することにより読むことができないでしょうか? (以上二つのアドバイスは経験に基づくものではありません。)
お礼
ありがうございます。 >韓国語フォントをコマンド・プロンプトに >追加してみてはいかがでしょうか。 フォントを追加する前に、 日本語SHIFT-JISの状態(chcp 932を実行した状態)で プロパティのフォントタブでラスタフォントになっていたので (最初の質問ではこの状態で確認しました) MSゴシックに変えてdirを実行したところ なぜかコマンドプロンプト上では 韓国語が表示されていました。 >■上記のStep 3 で、コマンドプロンプト上で表示するのではなく、 >テキストファイルにリダイレクトした場合は、どうなるでしょうか? >文字化けしていると思いますが、メモ帳の書式でフォントを変更する >ことにより読むことができないでしょうか しかし、dir > list.txt で書き出してメモ帳で確認すると 韓国語の文字の部分が?になっています。 メモ帳でフォントを同じMSゴシックにしても?のままです。 コマンドプロンプト上のフォントとメモ帳のフォントは 同じMSゴシックなのに、なぜコマンドプロンプト上では 韓国語が表示されているのに、メモ帳では韓国語が 表示されないのかな?
- mdmp2
- ベストアンサー率55% (438/787)
No.1 です。 ダメだったようで、すみません。 韓国語文字コードページは、20949 のようです。 https://www.ipentec.com/document/document.aspx?page=windows-codepage-list cmd /K "chcp 20949" を試してください。 ダメだったら、他にも 949 など韓国語文字コードページがありますので、リストを見て、”韓国語”とあるものをすべて試してください。
お礼
cmd /K "chcp 20949"でも同じメッセージがでます。 The system cannot write to the specified device. コマンドプロンプトのプロパティのフォントタブで ラスターフォントをConsolasなどの別のフォントにして dir C:\document\lesson\Youtube\ を実行すると上記のメッセージは出ずに 文字化けした状態でdirの実行結果が表示されます。 この状態でラスターフォントに戻すと 韓国語で表示されます。 cmd /K "chcp 65001" cmd /K "chcp 20949" どちらでもフォントは違うけれども同じように表示されます。 結局、ラスタフォント以外のフォントにして dirを実行して文字化けした状態の実行結果になるので 再び、ラスタフォントに戻さないと 正しく韓国語で表示されないようですが、 この原因はわかりますでしょうか。
- qq149598100
- ベストアンサー率59% (416/703)
エクスプローラーでは他国語文字は見えても、DOS窓ではそうはいきません。 >韓国語の文字が■で表示されてしまいます。 それは使用しているフォントが適切でないためです。その文字が含まれているフォントでないと表示はできません。MSゴシック辺りだと表示できるかも。 >韓国語の文字が?の表示になってうまくいきません。 日本語だけの環境だと、まずコードページが違います。また、日本語以外の特殊な文字をリダイレクトするには、その言語がシステムの言語になっていないと駄目だと思います。純粋な日本語環境では無理でしょう。言語を追加することは可能ですので、やればできると思いますが。 ハードルの高いDOS窓でのコマンドの実行よりも、ファイルの一覧を取得するのが目的のはず。あるかどうかは知りませんが、ファイルのリストをテキストやクリップボード経由で出力できるようなソフトを探した方が早いのでは?。他言語文字が使えるかどうかはそのソフト次第ですけど。
お礼
回答ありがとうございます。 >ハードルの高いDOS窓でのコマンドの実行よりも、 >ソフトを探した方が早いのでは このようなソフトを探してみましたが見つかりませんので ハードルが高いのかもしれませんが DOS窓でのコマンドの実行でしか確認することができませんでした。 >MSゴシック辺りだと表示できるかも。 コマンドプロンプトのプロパティのフォントタブで MSゴシックにすると dirで韓国語が表示されるようになりましたので このフォントで韓国語が表示されることが 分かりました。 >日本語以外の特殊な文字をリダイレクトするには、 >その言語がシステムの言語になっていないと駄目だと思います。 コマンドプロンプトのプロパティのフォントタブで MSゴシックにすることで、 韓国語が表示できるMSゴシックがシステムの言語になった と理解してよろしいでしょうか。 dir > list.txt でテキストファイルにして type list.txtで中身を表示すると 韓国語が?で表示されますが なぜdirでは韓国語が表示されているのに ファイルにすると韓国語が表示されなく なってしまうのでしょうか、どうすれば ファイルにした時にも韓国語が表示される ようになるのか分かりますでしょうか。
- mdmp2
- ベストアンサー率55% (438/787)
コマンド・プロンプトの文字コードはSHIFT-JIS だそうです。 文字コードをUTF-8 にしてみてください。 コマンド・プロンプトを開き、dir を実行する前に次のコマンドを実行します。 c:\windows\system32> が開いている時、 c:\windows\system32>cmd /K "chcp 65001" と入力し、エンターします。
お礼
cmd /K "chcp 65001" を実行した後に、 韓国語の文字列を含むファイルのあるフォルダをdirで 表示すると以下のような表示になってしまいます。 何が起きているのかよく分からないのですが この原因と対処方法は分かりますでしょうか。 ---------------------------------------------- Active code page: 65001 C:\Windows\System32>dir C:\document\lesson\Youtube\ Volume in drive C has no label. Volume Serial Number is 0E4B-AC7B The system cannot write to the specified device. C:\Windows\System32>
お礼
>リダイレクト先がシステムフォルダであるそのフォルダには、 >権限がないので書き込めないのですよ。 >DOS窓を開いて >cd \document\lesson\Youtube >などを実行し、書き込める権限があるフォルダに移動してから >作業して下さい。 DOS窓を開いて cd \document\lesson\Youtubeで移動して chcp 65001を実行すると Active code page: 65001 The system cannot write to the specified device. と表示されます。この後、dirを実行すると Volume in drive C has no label. Volume Serial Number is 0E4B-AC7B The system cannot write to the specified device. というメッセージが表示されます。 chcp 65001を実行した後のコマンドプロンプトの 挙動が少しおかしいです。 (ラスターフォントとMSゴシックいずれにおいても) >unicode(UTF-8)のコードページでないとうまくいかないですね。 ということですが、 ”CP_UTF8” 65001ではうまくいかないので 教えてほしいのですが MSゴシックにすると 日本語SHIFT-JISの状態(chcp 932を実行した状態)でも dirで韓国語が表示されているので リダイレクトで生成したファイルも MSゴシックのフォントで生成されているはずなので typeコマンドで韓国語が表示されると思われるのですが なぜできないのでしょうか。 よろしくお願いします。