有时候我们需要通过控制台dir命令将所有的文件列表输出到一个文本文件中,然后再处理,可是dir命令得到的是各个目录下的文件名,不带全路径,怎么样才能在文件名后能跟一个目录的完整路径呢?网上查了一下,可以通过bat批处理来实现:
@echo off
for /f "delims=" %%i in ('dir /a-d /b /s /od') do echo %%~ti %%~dpnxi
例如将某个目录下的文件全路径名列表输出到a.txt,将上面的代码保存到b.bat,则在命令行输入:
b>a.txt
即可.
如果在控制台直接使用,可以在bat文件中最后一行加上
pause
在执行时满屏后提示按任意键继续.
上面的只是中间结果,可以对dir命令的参数进一步设置,得到想要的结果.
~I - 删除任何引号("),扩展 %I
%~fI - 将 %I 扩展到一个完全合格的路径名
%~dI - 仅将 %I 扩展到一个驱动器号
%~pI - 仅将 %I 扩展到一个路径
%~nI - 仅将 %I 扩展到一个文件名
%~xI - 仅将 %I 扩展到一个文件扩展名
%~sI - 扩展的路径只含有短名
%~aI - 将 %I 扩展到文件的文件属性
%~tI - 将 %I 扩展到文件的日期/时间
%~zI - 将 %I 扩展到文件的大小
@echo off
for /f "delims=" %%i in ('dir /a-d /b /s /od') do echo %%~ti %%~dpnxi
例如将某个目录下的文件全路径名列表输出到a.txt,将上面的代码保存到b.bat,则在命令行输入:
b>a.txt
即可.
如果在控制台直接使用,可以在bat文件中最后一行加上
pause
在执行时满屏后提示按任意键继续.
上面的只是中间结果,可以对dir命令的参数进一步设置,得到想要的结果.
~I - 删除任何引号("),扩展 %I
%~fI - 将 %I 扩展到一个完全合格的路径名
%~dI - 仅将 %I 扩展到一个驱动器号
%~pI - 仅将 %I 扩展到一个路径
%~nI - 仅将 %I 扩展到一个文件名
%~xI - 仅将 %I 扩展到一个文件扩展名
%~sI - 扩展的路径只含有短名
%~aI - 将 %I 扩展到文件的文件属性
%~tI - 将 %I 扩展到文件的日期/时间
%~zI - 将 %I 扩展到文件的大小