批处理:提取文件夹中的文件名并保存到Excel表里
发布网友
发布时间:2022-04-23 02:46
我来回答
共2个回答
热心网友
时间:2023-06-30 01:09
@echo off & title 生成Excel表格 By 依梦琴瑶
cd /d %~dp0
(for /d %%a in (*) do (
pushd "%%~a"
CD.>"%tmp%\CSV.LOG"
for /f "delims=" %%b in ('dir /a-d/b') do (
for /f "delims=" %%c in ('dir /a-d/b/o-n "*%%~xb"') do set /a "Fst=1%%~nc-10000"
set "Str=%%~xb"
call findstr /bei /c:"\"%%~a\",\"%%Fst%%\",\"%%Str:~1%%\"" "%tmp%\CSV.LOG" >NUL 2>NUL || (
(call echo "%%~a","%%Fst%%","%%Str:~1%%")>>"%tmp%\CSV.LOG"
)
)
popd
type "%tmp%\CSV.LOG"
))>"Excel表格记录.xls"
pause
生成的Excel是csv格式的,因此打开后表格间的间隔什么的需要自己手动调整一下,然后另存为正常的xls格式。
热心网友
时间:2023-06-30 01:09
尚有不明之处,请留意私信,加我好友细聊,此处勿回,待我稍后发代码。
1。是否每一个文件保存为一行,如果是这样,那就整个EXCEL就是一列了。
2。如果只生成一个excel文件的话,那就没必要生成excel文件,算成TXT文件也可,因为操作EXCEL必须用VBS,写来甚是麻烦。若是TXT写来就容易些。而且,TXT用EXCEL打开,另存为EXCEL表格即可。追问
我把文件发给你,里面有需要达到的最终效果表。
网页链接
追答@echo off
rem 设置源目录,不可省略最后的\
set "SrcDir=d:\test\"
rem 设置输出文件路径
set "OutFile=d:\test\结果.xls"
(for /d %%a in (*) do (
pushd "%%a"&&for /r %%b in (*) do (
setlocal enabledelayedexpansion
set "name=%%~dpnb"&&set "name=!name:%SrcDir%=!"&&set "name=!name:\=.!"
for /f "tokens=1-3 delims=." %%h in ("!name!") do (
call :get_number "%%i" var
set "name=%%h.!var!.%%j"
echo;!name!
)
endlocal
)
popd
))>"%OutFile%"
pause&exit
:get_number 去掉数字前面的0
setlocal
set num=%~1
:lp
set n=%num:~,1%
if %n%==0 (set "num=%num:~1%"&&goto :lp) else (endlocal&set/a %2=%num%&goto :eof)