这可能是一个非常简单的问题,但我遇到了困难。
我正在尝试编写一个批处理文件,并且需要列出特定目录中的所有文件。 dir
命令可以做到这一点,但它还会提供许多其他信息;我希望它只列出 文件名 并排除其他任何信息。
我只想让输出看起来像这样:
file1.txt
file2.txt
file3.txt
这可能是一个非常简单的问题,但我遇到了困难。
我正在尝试编写一个批处理文件,并且需要列出特定目录中的所有文件。 dir
命令可以做到这一点,但它还会提供许多其他信息;我希望它只列出 文件名 并排除其他任何信息。
我只想让输出看起来像这样:
file1.txt
file2.txt
file3.txt
完整的命令是:
dir /b /a-d
让我来分解一下;
基本上,/b
是你要找的东西。
/a-d
将排除目录名称。
要获取更多信息,请参阅 dir /?
以查看您可以与 dir
命令一起使用的其他参数。
dir /b /a-d > tmp.txt
- Stéphane GRILLON/S
йЂ‰йЎ№еђЊж—¶иЋ·еЏ–еђз›®еЅ•дёзљ„文件名。 - Farhan Ghumraseltene /a-d将会排除目录名称
吗? - Stephandir /B /A-D /S
- EmpathicSage你也可以尝试这个:
for %%a in (*) do echo %%a
使用 for
循环,您可以将当前目录中的所有文件名使用 echo
输出。for %a in (*) do @echo %a
where
而不是dir
?在命令行中:
for /f tokens^=* %i in ('where .:*')do @"%~nxi"
在批处理/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
@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 /f tokens^=* %i in ('where /r . *')do @echo/ Path: %~dpi ^| Name: %~nxi
在批处理/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
dir
行上方使用del fileslist.txt
。 - CAD blokefindstr
排除它,即dir /b /s | findstr /VI "filelist.txt" > filelist.txt"
。 - Gerharddir /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文件。
for /R %%i in (*) do echo (%%~nxi)>list.txt
。 - Gerharddir %1 /b /a-d > list.txt
然后将一个目录拖放到其中,该目录中的文件将在list.txt中列出
Windows 10:
打开命令提示符(cmd)
切换到你想要创建文本文件(movie_list.txt)的目录(d:\videos\movies)
输入以下命令
d:\videos\movies> dir /b /a-d > movie_list.txt
dir /s/d/a:-d "folderpath*.*" > file.txt
在不需要子文件夹中的文件时,去掉/s。