有时候需要提取一些文件名,但是文件又太多,一个一个复制太慢,现在来说说怎么用bat批处理命令来实现批量提取文件名。

【教程如下】:

1、将下面这条命令,复制到txt记事本上,然后另存为:获取文件名.bat,保存类型:所有文件(*.*),如下图

dir /b > 文件名清单.txt

通过BAT批量提取文件夹内所有文件的文件(夹)名称  文件名 提取 批量 第1张

2、将刚刚保存好的bat文件,放到需要提取文件名的文件夹里,双击打开;

通过BAT批量提取文件夹内所有文件的文件(夹)名称  文件名 提取 批量 第2张

3、打开之后会有个黑色命令窗口一闪而过,然后会发现在该文件夹里新生成了一个“文件名清单.txt”文件,打开“文件名清单.txt”文件即可看到文件名清单;

通过BAT批量提取文件夹内所有文件的文件(夹)名称  文件名 提取 批量 第3张

4、再来看看通过其它条件,获取文件名的脚本怎么编写:

只获取当前目录下的[文件名];

@echo off
dir /a-d /b >./清单.txt

②只获取当前目录下的“jpg文件”的[文件名];

dir *.jpg /b > 当前目录下的jpg文件.txt

获取当前目录及子目录下的[文件名](tree格式);

@echo off
tree /f %1>%1清单.txt

只获取当前目录及子目录下“jpg文件”的[文件名];

dir *.jpg /s /b > 清单.txt

只获取当前目录及子目录下“mp3文件”的[文件名];

dir *.mp3 /s /b > 清单.txt

只获取当前目录及子目录下“pdf文件”的[文件名];

dir *.pdf /s /b > 清单.txt

只获取当前目录及子目录下“txt文件”的[文件名];

dir *.txt /s /b > 清单.txt

获取当前目录下的文件路径;

@echo off & setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('"dir /b *.*"') do (
set file=%%~fi
set file=!file:/=/!
echo !file! >> 文件路径.txt
)

获取当前目录及子目录下的文件路径;

dir /s /b > 文件路径.txt

提取当前目录及子目录下的文件名和文件修改时间

@set @n=0/*&echo off
dir /a-d/s/b|Cscript -nologo -e:jscript "%~f0" > 1.txt
pause&exit /b */

var fso=new ActiveXObject('scripting.FileSystemObject');
while(!WSH.StdIn.AtEndOfStream)
{
file=fso.GetFile(WSH.StdIn.ReadLine());
t=new Date(file.DateCreated);
t1 = t.getFullYear() + "-" + (t.getMonth() + 1) + "-" + t.getDate() + " " + t.getHours() + ":" + t.getMinutes() + ":" + t.getSeconds();
WSH.Echo(file + "\t" + t1);
}

源:竹林猫,文章链接:https://zhulincat.com/post/278.html