use*_*570 105 batch-file
这可能是一个非常简单的问题,但我遇到了麻烦.基本上,我正在尝试编写批处理文件,我需要它来列出某个目录中的所有文件.该dir命令将执行此操作,但它还提供了一堆其他信息; 我希望它只列出文件名并排除其他任何内容.
我只想让输出看起来像这样:
file1.txt
file2.txt
file3.txt
Run Code Online (Sandbox Code Playgroud)
提前致谢!
Ste*_*han 207
完整的命令是:
dir /b /a-d
Run Code Online (Sandbox Code Playgroud)
让我分手吧
基本上/b就是你要找的东西.
/a-d 将排除目录名称.
有关更多信息,请参阅dir /?可与dir命令一起使用的其他参数.
npo*_*aka 24
你也可以试试这个:
for %%a in (*) do echo %%a
Run Code Online (Sandbox Code Playgroud)
使用for循环,可以echo输出当前目录的所有文件名.
小智 10
1.打开记事本
2.新建文件
3.type波纹管
dir /b > fileslist.txt
Run Code Online (Sandbox Code Playgroud)
4.保存“ list.bat”
就是这样。现在您可以将这个“ list.bat”文件复制并粘贴到您的任何文件夹位置并双击它,它将创建一个“ fileslist.txt”以及该目录文件夹和文件名列表。
注意:如果要创建文件名列表和子文件夹,则可以使用以下代码创建批处理文件。
dir /b /s > fileslist.txt
Run Code Online (Sandbox Code Playgroud)
where改用dir?在命令行中:
for /f tokens^=* %i in ('where .:*')do @"%~nxi"
Run Code Online (Sandbox Code Playgroud)
在 bat/cmd 文件中:
@echo off
for /f tokens^=* %%i in ('where .:*')do %%~nxi
Run Code Online (Sandbox Code Playgroud)
file_0003.xlsx
file_0001.txt
file_0002.log
Run Code Online (Sandbox Code Playgroud)
where .:*
Run Code Online (Sandbox Code Playgroud)
G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log
Run Code Online (Sandbox Code Playgroud)
对于递归:
where /r . *
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
Run Code Online (Sandbox Code Playgroud)
@echo off
for /f tokens^=* %%i in ('where .:*')do echo/ Path: %%~dpi ^| Name: %%~nxi
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
在命令行中:
for /f tokens^=* %i in ('where /r . *')do @echo/ Path: %~dpi ^| Name: %~nxi
Run Code Online (Sandbox Code Playgroud)
在 bat/cmd 文件中:
@echo off
for /f tokens^=* %%i in ('where /r . *')do echo/ Path: %%~dpi ^| Name: %%~nxi
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您还需要子目录,则需要“ dir”命令和“ For”命令
dir /b /s DIRECTORY\*.* > list1.txt
for /f "tokens=*" %%A in (list1.txt) do echo %%~nxA >> list.txt
del list1.txt
Run Code Online (Sandbox Code Playgroud)
将您的根目录放在dir命令中。它将创建具有完整路径名的list1.txt,然后仅具有文件名的list.txt。