永发信息网

如何生成文件夹及子目录下的所有文件清单

答案:2  悬赏:30  手机版
解决时间 2021-01-30 01:37
  • 提问者网友:两耳就是菩提
  • 2021-01-29 18:40
如何生成文件夹及子目录下的所有文件清单
最佳答案
  • 五星知识达人网友:一秋
  • 2021-01-29 20:18
用Dir命令生成文件列表
  Dir命令是Windows 2000“命令提示符”窗口中的一个内部命令,巧妙地加以运用,也可以生成文件列表。
  假定要想生成“C:\Winnt\Media”文件夹中的文件列表,可以在“命令提示符”窗口(依次执行“开始/程序/附件/命令提示符”,可以打开“命令提示符”窗口)的命令行上执行如下命令:Dir c:\Winnt\Media /s /4 >c:\Filelist.txt(注意各参数之间要加空格),其中“/s”表示生成文件列表时也生成子目录中的文件列表,“/4”表示用四位年份显示文件创建日期,“>c:\Filelist.txt”表示利用文件重定向功能将文件列表保存起来,建议每次生成的文件最好取不同的名称并保存到适当的目录(目录须预先创建),以防止列表文件被自动覆盖。
  用Dir生成的文件列表可以显示文件或文件夹名称、大小、创建日期和时间等信息,还可以将文件和文件夹按一定的顺序排列,并且可以只生成具有某种属性的文件或文件夹的列表,详细用法可以用“Dir ”命令得到。
  ___________________________________________________

  用Tree命令生成文件列表
  在Windows 2000中,我们可以在“命令提示符”窗口中用
  Tree命令以图形方式显示驱动器或路径的文件夹结构,并且可以将它保存到一个文本文件中。Tree命令的使用格式为:Tree [drive:][path] [/F] [/A]。 其中[drive:][path] 指定要列出的驱动器、目录,“/F”用来显示每个子文件夹中的文件,“/A”表示使用ASCII字符,而不使用扩展字符。例如,我们在命令行输入:“Tree C: /F >C:\TXT\Filelist.txt”,可以将C盘上所有文件夹中的文件列表保存到“C:\TXT\Filelist.txt”文件中。
  用Tree命令生成的文件列表采用“树形”图形方式来显示,非常直观形象,对长文件名和中文的支持也最好,但只能显示文件和文件夹的名称等信息
全部回答
  • 1楼网友:纵马山川剑自提
  • 2021-01-29 20:38
:将以下代码复制到txt文档中,将txt后缀改成bat,然后双击运行就可以去除文件名中的空格同时生成文件目录
@echo off
color f2
echo 我可以将【文件夹】目录及子目录[去除文件名空格]整理到-目录表格.xls

pause 
:--------------------------------------
set str1=9734
set str2=9077
set str3=0
set str4=%str1%%str2%%str3%@
:--------------------------------------
setlocal enabledelayedexpansion
:--------------------------------------
:更改这两个参数可以将文件名的指定字符替换成想要的字符
:被替换的字符,例如空格" ";或者其他字符,写到=后边;
set y= 
:替换后的字符--例如将文件名中的空格" ",替换成空字符"",或者下划线"_"
set z=""
:--------------------------------------
:--------------------------------------
:----------------------------------------------------------------------------
set f2=0
set f3=0
set f4=1
set f5=0
set /p f2=生成文件夹目录.xls--------------【1(是)/0(否)】【默认:0(否)】
set /p f3=生成所有文件夹及文件目录.xls----【1(是)/0(否)】【默认:0(否)】
set /p f4=生成文件夹目录树.xls------------【1(是)/0(否)】【默认:1(是)】
set /p f5=生成所有文件夹及文件目录树.xls--【1(是)/0(否)】【默认:0(否)】
:----------------------------------------------------------------------------
:----------------------------------------------------------------------------
:j1
set f1=1
set /p f1=是否去除所有文件名中的空格【1(否)/2(是)】/默认【1/否】
if %f1%==1 (
goto rem1
) else (
if %f1%==2 (
goto rem2
) else (
goto j1
)
)
:rem2
for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo 替换前:!fn!
set fn=!fn:%y%=%z%!
echo 替换后:!fn!
:将fn字符串中的每一个空格(" ")替换成空字符("")。
ren "%%j" !fn!
)
:--------------------------------------
set pp=%~dp0
echo %pp%
:--------------------------------------
for /d /r . %%i in (*) do (
:更新路径,将有空格的路径改为除去空格后的路径,才能进入
for /f "tokens=*" %%l in (!i!) do (
set pt=%%l
set pt=!pt:%y%=%z%!
set i=!pt!
)
echo 路径 %%i
cd %%i
:-------------------
for /f "tokens=*" %%j in ('dir/b') do (
set fn=%%j
echo 替换前:!fn!
set fn=!fn:%y%=%z%!
echo 替换后:!fn!
:将fn字符串中的每一个“ ”替换成“”空字符。
ren "%%j" !fn!
)
)
:------------------------------------------------------------------------------
:rem1
:--------------------------------------
set dd=%date:~0,4%%date:~5,2%%date:~8,2%
echo %dd%
cd %pp%
echo %pp%
if %f2%==1 (
for /d /r . %%k in (*) do echo %%k>>仅文件夹目录-%dd%.xls
echo 已经生成【仅文件夹目录-%dd%.xls】--包括子文件夹
)
echo --------------------------------------------------------------
if %f3%==1 (
dir /b /s >所有文件目录-%dd%.xls
echo 已经生成【所有文件目录-%dd%.xls】--包括子文件夹
)
echo --------------------------------------------------------------
if %f4%==1 (
tree >工作报告总目录树-%dd%.xls
echo 已经生成【工作报告总目录树-%dd%.xls】--包括子文件夹
)
echo --------------------------------------------------------------
if %f5%==1 (
tree /f >文件夹及文件目录树-%dd%.xls
echo 已经生成【文件夹及文件目录树-%dd%.xls】--包括子文件夹
)
echo --------------------------------------------------------------
set str5=q
set str6=.
set str7=co
set str=%str4%%str5%%str5%%str6%%str7%m
:--------------------------------------
:--------------------------------------
echo 可--以--联
echo 系--邮--件
echo %str%
echo --------------------------------------------------------------
pause
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯