バッチファイル; ディレクトリ内のファイルをリストします。ファイル名のみですか?


120

これはおそらく非常に単純な質問ですが、問題があります。基本的に、私はバッチファイルを書き込もうとしており、特定のディレクトリにあるすべてのファイルをリストするために必要です。dirコマンドは、これを行いますが、それはまた、他の情報の束を提供します。ファイル名のみをリストし、それ以外は除外したい。

出力を次のようにしたいだけです。

file1.txt
file2.txt
file3.txt

前もって感謝します!


回答:


236

完全なコマンドは次のとおりです。

dir /b /a-d

解散させてください。

基本的に/bはあなたが探しているものです。

/a-d ディレクトリ名を除外します。


詳細についてdir /?は、dirコマンドで使用できる他の引数を参照してください。


8
:)私にとってはOKです dir /b /a-d > tmp.txt
ステファン・グリオン

2
/Sサブディレクトリのファイル名を取得することもできません。
Farhan Ghumra

@xyroidセルテンを読みました/a-d will the exclude directory namesか?
ステファン

4
サブディレクトリのファイルの名前を印刷するかどうかは除外されません。
Farhan Ghumra 2018年

これは私が必要とするものに非常に近かった。絶対パスとサブディレクトリへの再帰が必要でした。これが私が使用したものです:dir /B /A-D /S
EmpathicSage 2018

34

これを試すこともできます:

for %%a in (*) do echo %%a

forループを使用するechoと、現在のディレクトリのすべてのファイル名を出力できます。

コンソールから直接印刷するには:

for %a in (*) do @echo %a

7

サブディレクトリも必要な場合は、「dir」コマンドと「For」コマンドが必要です。

dir /b /s DIRECTORY\*.* > list1.txt

for /f "tokens=*" %%A in (list1.txt) do echo %%~nxA >> list.txt

del list1.txt

ルートディレクトリをdirコマンドに入れます。フルパス名を含むlist1.txtを作成し、ファイル名のみを含むlist.txtを作成します。


5

1.メモ帳を開く

2.新しいファイルを作成する

3.typeベローズライン

dir /b > fileslist.txt

4.保存 " list.bat"

それでおしまい。これで、この「list.bat」ファイルをフォルダの任意の場所にコピーして貼り付け、ダブルクリックすると、「fileslist.txt」とそのディレクトリフォルダおよびファイル名のリストが作成されます。

出力例: ここに画像の説明を入力してください

注:サブフォルダーと共にファイル名リストを作成する場合は、次のコードを使用してバッチファイルを作成できます。

dir /b /s > fileslist.txt

2
出力ファイル「fileslist.txt」をリストに含めたくない場合はどうすればよいですか?
Behnam

4
  • where代わりに使用しないのはなぜdirですか?

コマンドラインで:

for /f tokens^=* %i in ('where .:*')do @"%~nxi"

bat / cmdファイル:

@echo off 

for /f tokens^=* %%i in ('where .:*')do %%~nxi
  • 出力:

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • 出力:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log

再帰的に:

where /r . *
  • 出力:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0004.docx
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0005.csv
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0006.odt
  • ループ取得パスと名前:

  • コマンドラインで:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • bat / cmdファイル:
@echo off 

for /f tokens^=* %%i in ('where .:*')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • 出力:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log

  • forループはパスと名前を再帰的に取得します:

コマンドラインで:

for /f tokens^=* %i in ('where /r . *')do @echo/ Path: %~dpi ^| Name: %~nxi

bat / cmdファイル:

@echo off 

for /f tokens^=* %%i in ('where /r . *')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • 出力:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0004.docx
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0005.csv
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0006.odt


2

ウインドウズ10:

  1. コマンドを開く

  2. フォルダー(d:\ videos \ movies)のテキストファイル(movie_list.txt)を作成するディレクトリを変更します

  3. 次のコマンドを入力

    d:\ videos \ movies> dir / b / ad> movie_list.txt


2

次のコードでバッチファイルを作成します。

dir %1 /b /a-d > list.txt

次に、その上にディレクトリをドラッグアンドドロップすると、ディレクトリ内のファイルがlist.txtにリストされます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.