• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ファイル名だけを取り出す方法)

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

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

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

  • ベストアンサー
回答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% (1158/3030)
回答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/13026)
回答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