コマンドプロンプトで指定フォルダ以下の全ファイルのフルパスを取得する、コマンドの備忘録です。
コマンド
プロンプト上に表示する場合
dir /b /s /a-d c:\temp
ファイルへ結果を出力する場合
dir /b /s /a-d c:\temp > c:\temp\files.txt
※1 c:\tempはファイル一覧の対象フォルダ
※2 >の個所は後ろにファイル名を記述することによって、ファイルリストの出力先をコマンドプロンプト画面からファイルに変更している。
付加オプション一覧
下記のオプションを使用しています。
No. | オプション | 説明 |
---|---|---|
1 | /b | ファイル名のみ表示する。 |
2 | /s | サブディレクトリも対象とする。 |
3 | /a-d | a:アーカイブの準備が完了したファイル -d:ディレクトリを除く ※先頭に-を付加することで”除く”という指定になります。 |
テスト実行
実行準備:テスト対象フォルダの状態
下記のようなフォルダをc:\tempに用意して実行してみます。
また、c:\temp\testのような各サブディレクトリ(test,test2,test3)にも適当なファイルを格納しています。
実行
初心者でも大丈夫なようにコマンドプロンプトの起動から丁寧に説明します。
スタートメニュー> WIndows システムツール >コマンドプロンプト を開きます。
この起動手順は検索窓から「cmd」と入力して開いても別に構いません。
先ほど提示した、下記のコマンドを実行します。
dir /b /s /a-d c:\temp > c:\temp\files.txt
実行してもプロンプト画面上は何も出てきませんが、問題ありません。
下記の通りfiles.txtというファイル名で、一覧ファイルができているのでこちらを開きます。
すると、ファイルの一覧がフルパスでできているのが確認できました。
もちろんtest,test2,test3などのサブディレクトリ配下のファイルも一覧化されており、ファイルのみが取得されております。
PowerShell版
なお、こちらはPowerShell版も用意してみました。
コマンドプロンプトはWindows黎明期よりありましたが、PowerShellの登場から機能が重複している面があり動向が不安な面があります。
今後はPowerShellを使用したほうが賢明なようです。(できればCoreで)
参考情報
環境
下記の環境で実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS/コマンドプロンプト | Windows Version 10.0.19044.1645 |
以上です。
コメント