特定のフォルダにあるファイル名を一覧として取得してみました。
フォルダやファイルの整理をする際に「一覧表示させる方法はないか?」と思ったのがきっかけで試してみたところ3種類の取得方法がありました。
3種類の取得方法
他にも方法はあるかとは思いますが、ここでは以下の3つの取得方法を紹介していきます。
- ①マウスの操作で取得する ※サブフォルダの中身まで取得できない
- ➁コマンドを利用して取得する「dir /s /b」
- ③バッチファイルを利用して取得する
※にも記載しましたが、①についてはサブフォルダのファイルまでは取得できないので、サブフォルダのフォルダ名まで取得したい場合には➁や③の方法を利用する必要があります。
①マウスの操作で取得する
コマンドを利用しなくても、マウスの操作だけで取得可能です。
・ファイル名を取得したいファイルをドラッグします。
もしくは、ファイル名を取得したいフォルダにカーソルを当てて、「Ctrl」+「A」でファイルをすべて選択します。
・画像だと英語ですが、「パスのコピー」という項目が出てくるのでクリックします。
すると選択したパスの情報がコピーされます。
・テキストファイルなどにペーストして確認してみます。
ファイル名を含むパスの情報が見れることが分かりました。
ただ、この方法だとサブフォルダの中のファイルまでは取得することができないので、サブフォルダがある場合には各フォルダごとにこの作業を実施していく必要があります。
今回だと、「folder-1」の中に格納されている「file-1.txt」というファイルは取得できていません。
もし「folder-1」の中に格納されているファイルも一覧として表示したい場合には「folder-1」に移動して同じ作業を繰り返す必要があります
➁コマンドを利用して取得する「dir /s /b」
一覧表示させたいフォルダで「dir /s /b」というコマンドを実行することで取得可能です。
この方法だと①とは異なり、サブフォルダのファイルも表示させることが可能です。
※もし特定のフォルダでコマンドプロンプトを起動する方法が分からない場合は、下部の「[参考] 特定のフォルダでコマンドプロンプトを起動する方法」を参考にしてください。
「Download」フォルダで「dir /s /b」を実行した場合の結果です。
C:\Users\xxxxxx\Downloads>dir /s /b
C:\Users\xxxxxx\Downloads\folder-1
C:\Users\xxxxxx\Downloads\test.txt
C:\Users\xxxxxx\Downloads\folder-1\Downloads - Shortcut.lnk
C:\Users\xxxxxx\Downloads\folder-1\file-1.txt
C:\Users\xxxxxx\Downloads\folder-1\folder-2
C:\Users\xxxxxx\Downloads\folder-1\Google Chrome.lnk
C:\Users\xxxxxx\Downloads\folder-1\folder-2\file-2.txt
C:\Users\xxxxxx\Downloads\folder-1\folder-2\folder-3
C:\Users\xxxxxx\Downloads\folder-1\folder-2\folder-3\file-3.txt
C:\Users\xxxxxx\Downloads>
C:\Users\xxxxxx\Downloads>
C:\Users\xxxxxx\Downloads>
今回は分かりやすいようにフォルダ名には「folder-x」、ファイル名には「file-x」としてフォルダとファイルを配置しています。
ただこの場合、サブフォルダ名も表示されてしまうため(2,6,9行目)、純粋にファイル名だけを取得したい場合には少し見づらいかもしれません。
[参考] 特定のフォルダでコマンドプロンプトを起動する方法
特定のフォルダのパスが入力してあるボックスで「cmd」と入力して「Enter」を押すとそのフォルダでコマンドプロンプトを起動することができます。
③バッチファイルを利用して取得する
これが最も玄人的な方法(?)かもしれませんが、バッチファイルを利用しても取得可能です。
以下のコマンドをコピーして、拡張子「.bat」のファイルとして保存し、そのファイルを実行します。
※パスの情報は適宜変更してください。今回は「Downloads」フォルダで実行しています。
@echo off
for /r C:\Users\xxxxxx\Downloads %%f in (*) do (
echo filename = %%f
)
pause
for の /r のオプションを利用してファイルパスのすべてのファイルやフォルダに対して処理をします。
上記コマンドでは for の処理対象ファイルとして (*)を指定しているのですべての拡張子のファイルを出力させます。
ちなみに (*) を指定すると「hosts」などの隠しファイルも対象に含めることができます。
以下、上記コマンドが記載されたバッチファイルの実行結果です。
ファイル名が表示されていることが確認できます。
バッチファイルを利用した方法だと「➁コマンドを利用して取得する」と異なりサブフォルダ名だけが表示されることがないので、純粋にファイル名だけを取得することが可能です。
参考として拡張子を指定してファイル名を取得するコマンドも載せておきます。
[参考] テキストファイル(拡張子が[.txt])のみを取得
@echo off
for /r C:\Users\xxxxxx\Downloads %%f in (*.txt) do (
echo filename = %%f
)
pause
[参考] ブラウザのリンクやショートカット(拡張子が[.lnk])のみを取得
@echo off
for /r C:\Users\xxxxxx\Downloads %%f in (*.lnk) do (
echo filename = %%f
)
pause