在各位版主和联盟精华贴的帮助下
终于完成自动导出光盘目录并汇总的P处理。
功能:
1.判断光盘编号是否为数字
2.生成完后编号自动加1
3.判断汇总文件是否存在
4.光盘读盘错误判断
5.自动去掉 DIR 所列内容前后的盘符信息
无法发附件,只好贴代码了。
代码如下:
@echo off
color e
:setp1
cls
set dpath=d:\零碎
set fname=客人资料
set ppath=f:
set tmp1=%random%
:chkinput
set /p num1=请输入当前的光盘编号:
echo %num1%|findstr "^[0-9]*$"||goto num1error
:backup
cls
if exist %dpath%\%fname%.txt (copy %dpath%\%fname%.txt %dpath%\%fname%.bak /y) else goto fileerror
:setp2
cls
echo =================================
echo 当前光盘编号为 %num1%
echo =================================
echo .
set /p num2=按 Y 开始生成文件,按 N 退出,其它键重新输入。
if /i "%num2%"=="n" goto exit
if /i "%num2%"=="y" (goto chk) else goto chkinput
:chk
dir %ppath%|findstr "^[0-9]" >%temp%\%tmp1%.txt
:setp3
for %%i in (%temp%\%tmp1%.txt) do set tmp2=%%~zi
if %tmp2%==0 goto sizeerror
echo. >> %dpath%\%fname%.txt
echo. >> %dpath%\%fname%.txt
echo. >> %dpath%\%fname%.txt
echo %num1% >> %dpath%\%fname%.txt
echo. >> %dpath%\%fname%.txt
type %temp%\%tmp1%.txt >> %dpath%\%fname%.txt
cls
echo ================================================
echo 当前光盘 %num1% 已成功输入 %dpath%\%fname%.txt
echo ================================================
echo .
:setp4
set /p num3=按 Y 编号+1并开始生成,按 N 退出。
if /i "%num3%"=="n" goto exit
if /i "%num3%"=="y" (goto setp5) else goto inputerror
:setp5
set /a num1=%num1%+1
goto setp2
:exit
color 7
if exist %temp%\%tmp1%.txt (del %temp%\%tmp1%.txt)
cls
echo ===========================
echo ...Bye... Powered by Fly
echo ===========================
goto:eof
:fileerror
color 7
cls
echo ====================================
echo %dpath% 目录下不存在 %fname%.txt
echo 本程序退出
echo ====================================
goto:eof
:inputerror
cls
echo ====================
echo 输入有误,请重新输入
echo ====================
goto setp4
:sizeerror
cls
set /p num4=所导出的文本文件档长度为0。按 Y 重新读盘,其它键退出。
if /i "%num4%"=="y" goto chk
goto exit
:num1error
cls
echo ==============================
echo 输入编号不是全数字,请重新输入
echo ==============================
goto chkinput
终于完成自动导出光盘目录并汇总的P处理。
功能:
1.判断光盘编号是否为数字
2.生成完后编号自动加1
3.判断汇总文件是否存在
4.光盘读盘错误判断
5.自动去掉 DIR 所列内容前后的盘符信息
无法发附件,只好贴代码了。
代码如下:
@echo off
color e
:setp1
cls
set dpath=d:\零碎
set fname=客人资料
set ppath=f:
set tmp1=%random%
:chkinput
set /p num1=请输入当前的光盘编号:
echo %num1%|findstr "^[0-9]*$"||goto num1error
:backup
cls
if exist %dpath%\%fname%.txt (copy %dpath%\%fname%.txt %dpath%\%fname%.bak /y) else goto fileerror
:setp2
cls
echo =================================
echo 当前光盘编号为 %num1%
echo =================================
echo .
set /p num2=按 Y 开始生成文件,按 N 退出,其它键重新输入。
if /i "%num2%"=="n" goto exit
if /i "%num2%"=="y" (goto chk) else goto chkinput
:chk
dir %ppath%|findstr "^[0-9]" >%temp%\%tmp1%.txt
:setp3
for %%i in (%temp%\%tmp1%.txt) do set tmp2=%%~zi
if %tmp2%==0 goto sizeerror
echo. >> %dpath%\%fname%.txt
echo. >> %dpath%\%fname%.txt
echo. >> %dpath%\%fname%.txt
echo %num1% >> %dpath%\%fname%.txt
echo. >> %dpath%\%fname%.txt
type %temp%\%tmp1%.txt >> %dpath%\%fname%.txt
cls
echo ================================================
echo 当前光盘 %num1% 已成功输入 %dpath%\%fname%.txt
echo ================================================
echo .
:setp4
set /p num3=按 Y 编号+1并开始生成,按 N 退出。
if /i "%num3%"=="n" goto exit
if /i "%num3%"=="y" (goto setp5) else goto inputerror
:setp5
set /a num1=%num1%+1
goto setp2
:exit
color 7
if exist %temp%\%tmp1%.txt (del %temp%\%tmp1%.txt)
cls
echo ===========================
echo ...Bye... Powered by Fly
echo ===========================
goto:eof
:fileerror
color 7
cls
echo ====================================
echo %dpath% 目录下不存在 %fname%.txt
echo 本程序退出
echo ====================================
goto:eof
:inputerror
cls
echo ====================
echo 输入有误,请重新输入
echo ====================
goto setp4
:sizeerror
cls
set /p num4=所导出的文本文件档长度为0。按 Y 重新读盘,其它键退出。
if /i "%num4%"=="y" goto chk
goto exit
:num1error
cls
echo ==============================
echo 输入编号不是全数字,请重新输入
echo ==============================
goto chkinput
