有时候需要提取一些文件名,但是文件又太多,一个一个复制太慢,现在来说说怎么用bat批处理命令来实现批量提取文件名。
【教程如下】:
1、将下面这条命令,复制到txt记事本上,然后另存为:获取文件名.bat,保存类型:所有文件(*.*),如下图;
dir /b > 文件名清单.txt
2、将刚刚保存好的bat文件,放到需要提取文件名的文件夹里,双击打开;
3、打开之后会有个黑色命令窗口一闪而过,然后会发现在该文件夹里新生成了一个“文件名清单.txt”文件,打开“文件名清单.txt”文件即可看到文件名清单;
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); }