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

このQ&Aのポイント
  • 数ある階層のフォルダを無視し、ファイル名だけを取り出してExcelのデータベースにする方法を知りたい。
  • 特殊なソフトを使わずにファイル名だけを取り出す方法を教えてほしい。
  • 大分類フォルダと中分類フォルダを無視して、ファイル名のみを抽出してExcelのデータベースに取り込む方法を教えてください。
回答を見る
  • ベストアンサー

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

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

  • nyakuy
  • お礼率54% (177/322)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.8

面白そうなので参加します。以下はどうでしょう? バッチファイル化した方が楽です。 【準備】 1.メモ帳を開き以下の==内の1行を半角英文字で一言一句間違わないよう入力します。 (多分回答をコピペでOKです) === for /r /d %%d in (*) do dir /b %%d\*.* >> filelist.csv === 2.メモ帳で『ファイルリスト.bat』などの名前で親フォルダーに保存します。 最後の「.bat」は半角英文字です。 3.アイコンがメモ帳の時と違う歯車付きWindowsの様なアイコンになったことを確認する。 【実行】 上のファイルをクリック実行してください。 【注意】 (1)二度目の実行はこの場合はリスト書きだし先「filelist.csv」ですが捨ててください。 >> はファイルへ追記の意味なので注意要です。 (2)ファイル名拡張子を指定しないと「*.*」ではフォルダー名もリスト化されます。 【補足】 PS, 「dir /b %%d\*.* >> filelist.csv」の部分ですが (1)*.xl* >> 「ファイル名.dsv」とすると拡張子がxls ,xlsxなど主にエクセルデータを抽出可能です。 ワード系は *.doc* となります (2)正確には「マイコンピュータ」-「ツール」-「フォルダーオプション」の「ファイルの種類」でファイル名拡張子を確認してください。 「*」は任意の「文字列」の意味です。 以上 PS,ANo.7の方の回答も「%」を上記のように「%%」とすればバッチファイル化出来ます。 また、バッチファイルはメモ帳で編集できます。

nyakuy
質問者

お礼

バッチファイル、とても便利でした! コマンドプロンプトは他の方の回答にもありましたが、こちらの回答をベストアンサーとさせていただきます。 回答ありがとうございました。

その他の回答 (9)

回答No.10

>コマンドプロンプトは他の方の回答にもありましたが、こちらの回答をベストアンサーとさせていただきます。 ベストアンサーに選んで頂き恐縮です。 【再実行すると上書きではなく、追加してしまうのですがその辺改善してあります。】 リストへの「追加リスト防止」と「リスト出力するファイル名入力(「.csv」は入力不要)」を付け加えました。 実は、使えるツールになると思い日曜日に暇を見て完成していましたが他の方の回答がいいと思っていたので参考までの回答でもあり、まあいいかと思っておりました。 追加注意事項と完成したバッチファイルのコーディングを追加回答します。 【最終バッチファイルのコーディング】 ===ここから rem フォルダーファイル名出力 @echo off dir /w /og echo **************** echo フォルダー中のファイルをCSV形式でリスト出力します。 set /p F_NAME_INPUT="リストを出力するファイル名を入力してください?(.csv入力不要)" if exist %F_NAME_INPUT%.csv goto :EXTFILE for /r /d %%d in (*) do dir /b /on %%d\*.* >> %F_NAME_INPUT%.csv goto :EOF :EXTFILE echo ファイルが既に存在します。再度起動し別の名前を入力してください。 pause exit ===ここまで【13行】 作成方法は前回回答を参考にメモ帳でお願いします。 コピペでOKと思いますがバッチファイルは【行の折り返し禁止】ですので画面の都合での折り返しにご注意ください。 動作(デバッグ)は小生パソコンにて実行済み 特定ファイルを抽出するならば私の回答ですが質問のニーズに関するならば回答7の方の方が上です。 そういう意味で小生、回答7の方に一票投じました。 なお、回答者7(ANo.7)の方がいいかも知れません。 上記と同機能のバッチにするにはforを以下に差し替えてください。 === for /r . %%a in ( * ) do echo "%%~nxa">> %F_NAME_INPUT%.csv === 【追加注意事項】 1.バッチファイルはコマンドプロンプト(cmd.exe)で動いています。 カレントディレクトリー(CD)で指定したところが作業フォルダーになるのですがバッチではバッチの存在するところがCDになります。 よってショートカットはオリジナルの存在する場所となるため必ずバッチファイルを移動かコピーで目的のフォルダーで実行する必要があります。 2.ファイル名の漢字入力が特殊になります。漢字入力機能が動いていてJIS106キーボードならば[Alt]+[半角/全角]です。 以上

回答No.9

前回の回答【補足】欄 「以上」の位置がおかしく「PS」が二つあって変な文章になっててすみません。 この点は無視してください。 お詫びおよび訂正いたします。

  • pita-gora
  • ベストアンサー率70% (102/145)
回答No.7

コマンドプロンプトでリスト化したいフォルダに移動します。(以下は例です) cd C:\大分類フォルダ1 そのあと以下のコマンドを試してみて下さい。 for /r . %a in ( * ) do echo "%~nxa">>list.csv

nyakuy
質問者

お礼

コマンドプロンプトでできました。 難しそうなので敬遠していましたが便利なんですね! 回答ありがとうございました。

  • sknbsknb2
  • ベストアンサー率38% (1129/2920)
回答No.6

以下の手順で可能だと思います。(動作確認したExcelは2003) (1)大分類フォルダ1、大分類フォルダ2の入っているフォルダを  コマンドプロンプトで開く。 (2)コマンドプロンプトで、"tree /f > tree.txt" と入力する。 (3)tree.txt というファイルができるので、開いて全行をコピーする。 (4)ExcelのA1に貼り付ける。(ここから下はExcelでの作業) (5)A列をソートする。 (6)データ->区切り位置 を使って、区切り文字スペースでセル分割する。 (7)B列の上の方にファイル名、下の方にフォルダ名と分かれているので、  ファイル名の部分だけを取り出す。 但し、この方法だとフォルダ名やファイル名にスペースが含まれている場合は対応できません。

nyakuy
質問者

お礼

コマンドプロンプトでできました。 難しそうなので敬遠していましたが便利なんですね! 回答ありがとうございました。

  • basic_gg
  • ベストアンサー率50% (14/28)
回答No.5

私が使っている000.batは dir /B > "0DIR.txt" だけです。 フォルダ名も同時に出力しますが、 メモ帳で削除しています。 (無味乾燥な答えでごめんなさい)

nyakuy
質問者

お礼

1行目の000.batがよくわからなかったのですが、コマンドプロンプトでできました。 難しそうなので敬遠していましたが便利なんですね! 回答ありがとうございました。

回答No.4

またまた、パクってきました! ここにあるサンプルコードにちょこっと追加するだけ、 ん?、ファイル名だけでいいの?、じゃ、適当に削って! で、お望みのものが出来ると思います。 「かんたん10分プログラミング 第6回 指定フォルダ内のファイル名一覧をExcelに書き出す」 2006/02/17 園田 誠(そのだ まこと)=フリーライター 出典:日経ソフトウエア 2005年8月号 162ページより http://itpro.nikkeibp.co.jp/article/COLUMN/20060120/227645/

nyakuy
質問者

お礼

VBAでもやってみてできました! ありがとうございました。 でも他の人が使うファイルなんですが何故かセキュリティレベルを下げるのが嫌だと言い張るので 結局コマンドプロンプトにすることにしました。 回答ありがとうございました。

noname#223623
noname#223623
回答No.3

特殊なソフトを使わないということなのでコマンドプロンプトでやる。以前回答した内容がほぼそのまま使えるのでそれが参考になればいいな。 http://okwave.jp/qa/q4360685.html わからないところがあれば訊いてください。

nyakuy
質問者

お礼

コマンドプロンプトでできました。 難しそうなので敬遠していましたが便利なんですね! 回答ありがとうございました。

  • k-josui
  • ベストアンサー率24% (3220/13025)
回答No.2
nyakuy
質問者

お礼

やってみてできました! ありがとうございました。 でも他の人が使うファイルなんですが何故かセキュリティレベルを下げるのが嫌だと言い張るので 結局コマンドプロンプトにすることにしました。 回答ありがとうございました。

  • co_maam
  • ベストアンサー率65% (13/20)
回答No.1

私の良くやる方法を紹介します。 「LiName」というリネームソフトを利用します。 http://www.forest.impress.co.jp/lib/sys/file/filerename/liname.html このソフトに一覧にしたいルートフォルダ(例の場合大分類フォルダの1つ上のフォルダ)をD&Dします。 すると、階層を含めたファイル名の一覧がテキストエディタで開かれます。 例 XXXX\大分類フォルダ1\中分類フォルダ1\ファイル名1 XXXX\大分類フォルダ1\中分類フォルダ1\ファイル名2 XXXX\大分類フォルダ1\中分類フォルダ2\ファイル名1 … 本来ならば、このファイル名を変更することによってリネームするソフトですが、 この一覧を別のテキストエディタ(同じテキストエディタの場合は別のウィンドウで)にコピーします。 (誤ってリネームしてしまうことを防ぐため、LiName、LiNameで開いたテキストエディタ(ウィンドウ)は閉じます) コピーした一覧のうち、ファイル名以上の部分を、テキストエディタの矩形選択や置換を利用して削除します。 これでファイル名の一覧が完成するのでコピーしてExcelに貼り付けて完成です。

nyakuy
質問者

お礼

LiName、とても便利そうなので使ってみたかったのですが ダウンロード後のファイルが破損?していて使えませんでした。 うちのPCで使ってみたいと思います。 今回はコマンドプロンプトにすることにしました。 回答ありがとうございました。

関連するQ&A

  • ファイル名について

    ExcelやWordで作成したファイルのファイル名についてですが、ファイル名の文字の色やフォントを変更する事は可能でしょうか? ファイルを色んな分類に分けたい時に、フォルダーそれぞれ作っていたのですが、階層が増えすぎて面倒なので、赤いファイル名は仕事用、葵ファイル名は個人用など見た目で区別出来ればと思いまして。アイコンを変更する方法もあったのですが、使ってみるとイマイチだったんで。以上、よろしくお願いいたします。

  • エクセル 一つ上の階層の別フォルダのファイル名

    フォルダ「1」の中にあるエクセルファイル「A」を開いています この状態でフォルダ「2」の中にあるエクセルファイルの全ファイル名を取得したい のでご教示願います フォルダ「2」はフォルダ「1」と同じ階層にあります フォルダ「1」 ------ フォルダ「2」     l                   l       l                   l エクセルファイル「A」     エクセルファイル「*」, エクセルファイル「**」…ファイル数は不確定

  • エクセルで同じファイル名のファイルを別のファイル名で保存したい

    エクセルで、社員に同じテンプレートのファイルに入力してもらい、それを集計するつもりです。集まったファイルは同じファイル名なので、別のファイル名としてフォルダに保存したいのですが、簡単にできる方法やフリーソフトはないでしょうか。

  • ファイル名一括変換ソフト

    ■[フォルダ0]の中 [保存1] >[フォルダ1] > [テスト] > Text.txt [保存1] >[フォルダ2] > [テスト] > Text.txt [保存1] >[フォルダ3] > [テスト] > Text.txt [保存1] >[フォルダ4] > [テスト] > Text.txt ">"は下位のフォルダです。 こういうフォルダ階層がありファイルがあったときに 一括で各Text.txtの名前を たとえば [保存1] >[フォルダ1] > [テスト] > Text.txt だったら、 "Text.txt" から "フォルダ1.txt"にしたいのです。 数階層上のフォルダ名を指定し、ファイル名にリネームしたいのですが、なにかよいフリーソフトはないでしょうか。 まとめると、 Windowsの検索機能後、ドラッグ&ドロップ、もしくはソフトの検索機能で変更したいファイル名を指定し、好きなフォルダ名を指定してファイル名に付加できるものがないかと思っています。 いままでリネームソフトにはNamery というソフトを使用してきたのですができませんでした。 どなたか、ご存知のソフトがありましたら、教えていただけると助かります。よろしくお願いいたします。

  • 同一フォルダ内でファイルを整理する方法

    同一フォルダ内で、複数のフォルダで階層を作ること無く、またファイル名も変更する以外の方法で、何か整理する方法はないでしょうか。 複数の条件に当てはまるファイルがあり、同時に呼び出さなければならない場面が多く、しかしファイル名も変えられないのです。 特定の要素を持つファイルを一発でリストアップ出来るようにしたいのです。 例えるなら、フォルダの右上の検索で特定ワードを入れるとそれに引っかかったファイル名を持つのだけがズラッと並びますが、それのファイル名以外の方法が理想です。その上でフォルダ分け以外でお願いします。 同じファイルを複数用意する等、なんとかフォルダ分けの延長発展なども仕様上困るのでこれも除外でお願いします。

  • 同じファイル名なのに同じと判定しない

    重複データを削除するために、有名どころであるFileManyというフリーソフトを使っているのですが、同じファイル名なのに同じと判定しないことがあります。 エクスプローラーや別の同様なアプリでは同じ名前と判定します。 人の目で見ても当然同じファイル名です。 フォルダ階層も深くないですし、ファイル数も1個で比較してもダメです。 プログラムのコードは知りませんが、普通に考えて、パスからファイル名を抜き出し、if文で比較しているだけだと想像します。 ほぼ正しく動くのに、例外的に動かないことが(バグ)あると困りますよね。 なぜこんなことが起きてしまうのでしょうか?

  • エクセルファイルが開かない

    WindowsXP Excel 2003でファイルを作成し、デスクトップにフォルダを作成してその中に保存(バックアップでHDDにも保存している)してますが、いきなりデスクトップフォルダからファイルを開こうと思っても開くことが出来ません。 エクセルのアイコンから立ち上げて、「ファイル→開く」からやればファイルを開くことが出来ます。エクセルのファイルを保存したアイコンからは、どれも開くことが出来ません。Microsoft Officeを再インストールしても、結果は同じです。どうすれば、今までどおり デスクトップにフォルダを作ったアイコンから開くように出来るのでしょうか?? 

  • エクスプローラでフォルダー内のファイル数を確認する方法

    windowsXP home  エクスプローラで、サブフォルダー内を含めて ファイル数が幾つあるか確認する方法を教えてください。 階層が4つくらいあります。 フォルダー数も20くらいあり、それぞれにファイルがありますが、随時増えていきますので数えなくても確認できる方法があれば教えてください

  • ウィンドウズでのファイル名の文字数は何文字まで使えるのでしょうか?

    ウィンドウズでのファイル名の文字数は何文字まで使えるのでしょうか? 階層フォルダ名の前の¥は文字数に加算するのでしょうか?

  • EXCELファイルが全部消えました(汗)

    ある日突然マイドキュメント内のEXCELファイルが全部消えました。 全部移動でもしたかと思ったのですが、フォルダは残っています。 4つ以上の階層でそれぞれの階層に分類して複数のフォルダにEXCELファイルを入れていたのですが、綺麗にフォルダを残して中身だけ消えてます。 プロパティで見てもデータはゼロでなくなってます。 検索を掛けても出てきませんでした。 ちなみにデスクトップに置いていたEXCELファイルは残ってました。 丸ごと消えた(消した、移動)ならフォルダごとだと思うのですが、 このようにexcelファイルだけ消す機能、もしくはウィルスが存在するのでしょうか?