作者:乔山办公网日期:
返回目录:excel表格制作
:将以e799bee5baa6e997aee7ad94e59b9ee7ad94335下代码复制到txt文档中,将txt后缀改成bat
:然后双击运行,就可以选择是否去除文件名中的空格,是否生成文件夹目录或者文件目录
@echo off
color f2
echo 我可以将【文件夹】目录及子目录【去除文件名空格】整理到-目录表格.xls
echo 下一步,选择要执行的功能。
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
用公式自定义名称 就可以做,给你写个简单的宏:
Sub xxx()
i = 0
Set fs = CreateObject("Scripting.FileSystemObject")
spath = ThisWorkbook.Path
sfilename = Dir(spath & "\*")
Do While sfilename <> "" And sfilename <> ThisWorkbook.Name
i = i + 1
Str3 = StrReverse(sfilename)
h = InStr(1, Str3, ".")
ActiveSheet.Cells(i, 1).Select
ActiveSheet.Hyperlinks.add anchor:=Selection, Address:=spath & "\" & sfilename, _
TextToDisplay:=Left(sfilename, Len(sfilename) - h)
Set f = fs.GetFile(spath & "\" & sfilename) '返回指定e79fa5e98193e4b893e5b19e366路径文件所对应的 File 对象
ActiveSheet.Cells(i, 2) = f.DateCreated
sfilename = Dir()
Loop
ActiveSheet.Columns("A:B").AutoFit
End Sub
设你要将e:\file 的所有文件名列zhidao在A列,请按Alt+F11,打专开VBA编辑器,插入一个模块,把下面的代码贴进去,属按F5执行
Sub 宏1()
f = Dir("e:\file\*.*")
k = 1
Do While f <> ""
Cells(k, 1) = f
f = Dir
k = k + 1
Loop
End Sub
测试通过。
我是用DOS 的DIR 命令做的.
EXCEL的我还不会.
具体方法为,在开始==>运行 输入CMD 进入DOS界面百.
输入命令:DIR 盘别:\路径\路径...(如D:\TEST )*.* /后缀(指的是你的命令附加条件如S,B等) 盘别:\路径\路径...(如D:\TEST ) A.TXT
前面的路径就是你要度生成清单的文件夹和路径.
后面这个路径是你要生成的文件名称及你要存放的位置...
好像也可以用 文件名.XLS.因为不常用,所以没试过了.
刚才回复的差一个.重新举个例子给你.
在DOS界面输入dir C:\/S> 版D:\a.txt
这个命令后你再到D盘要目录去找a.txt文件,内容就是C盘根目录的所有文件和文件夹清单.这种TXT格式比较正规,可以直权接贴到EXCEL里.