标题: 电子书处理工具
[打印本页]
作者: pcgg5244
时间: 2009-9-15 08:37
标题: 电子书处理工具
@echo off
Setlocal EnableDelayedExpansion
if not "%~f1"=="" (
echo %~f1
set file=%~f1
goto fenli
) else (goto kaishi)
:kaishi
cls
echo.
echo.
echo.
echo ╭──────────────────────────╮
echo │ 电子书处理工具 │
echo │ ───────────── │
echo │ 欢迎使用电子书处理工具,本工具可以分割 │
echo │ 合并电子书,由于电子书是分段的,分割时可能 │
echo │ 有出入,请根据需要选择大小,QQ在下面,欢迎 │
echo │ 一起讨论批处理。 │
echo │ ♂低调♂QQ345042613 │
echo │ 2009-9-14 │
echo ╰──────────────────────────╯
set selection== ""
set /p selection= 请选择操作:1分割电子书 2合并电子书
IF not "%selection%"== "" SET selection=%selection:~0,1%
if "%selection%"=="1" goto main1
if "%selection%"=="2" goto main2
:main1
cls
echo 分割文本可以直接把文本文件拖到批处理上或输入文件名
set /p file=请输入需要分割的文件名:
:fenli
for /f "delims=" %%i in ("%file%") do (
echo %%i
set filename=%%~nxi
set filesize=%%~zi
set name=%%~ni
set mulv=%%~dpi
set /a kbsize=%%~zi/1024
set /a mbsize=%%~zi/1024/1024
)
cd /d %mulv%
:fenge
echo 文件名: %filename%
echo 文件大小: %filesize% 字节(大约 %kbsize% KB, %mbsize% MB)
set /p size=请输入你要分割出的每份文件的大小(单位:B):
set /a amount=%filesize%/%size%+1
set /a line=0
for /f "delims=" %%a in (%file%)do (
set /a line+=1 )
set /p choose=%filename% 可以分割成%amount%个切块,是否继续?Y/N
if not "%choose%"=="y" goto end
md %~dps0\%filename:~0,-4%
set /a linx=0
for /f "delims=" %%b in (%file%)do (set word=%%b
set /a linx+=1
set /a num=1000&&call :count)
echo %linx%
exit
:count
set /a sca=%line%/%amount%
set /a scb=%sca%
set /a num=1000
:loop
if %linx% leq %scb% (
echo !word!>>%~dps0\%filename:~0,-4%\%filename:~0,-4%-!num:~1!.txt
)else set /a scb+=sca && set /a num+=1 && goto :loop
goto :eof
:main2
cls
echo 本程序将按顺序合并当前目录以及子目录下所有文本文件,请注意删除无关文本文件!
set /p name=请输入合并后的文件名(不需要带扩展名如XX):
for /r %%i in (.) do (
for /f "delims=" %%a in (' dir /b "%%i\*.txt" 2^>nul ') do (
type "%%i\%%a" >>%name%.txt
echo. >>%name%.txt
)
)
exit