以下是一个示例的批处理(.bat)文件,可以完成你描述的内容:
请确保将数据文件命名为"data.txt",并将其和批处理文件放在同一目录下。运行批处理文件后,根据提示输入每个文本文件的行数,然后选择要使用的编码格式(1代表ANSI,2代表UTF-8)。程序会自动在输出文件夹中生成按行数分割后的文本文件,并根据选择的编码格式进行相应的编码转换。
[Python] 纯文本查看 复制代码 @echo off
setlocal enableextensions enabledelayedexpansion
set INPUT_FILE=data.txt
set OUTPUT_FOLDER=output
set /p CHUNK_SIZE=请输入每个文本文件的行数:
REM 创建输出文件夹
mkdir %OUTPUT_FOLDER%
REM 设置编码格式选择菜单
:select_encoding
cls
echo 请选择要使用的编码格式:
echo 1. ANSI
echo 2. UTF-8
set /p ENCODING_OPTION=请输入选项(1或2):
if "%ENCODING_OPTION%"=="1" (
set OUTPUT_ENCODING=ANSI
) else if "%ENCODING_OPTION%"=="2" (
set OUTPUT_ENCODING=UTF-8
) else (
echo 输入无效的选项,请重新输入。
timeout /t 3 >nul
goto select_encoding
)
REM 分割数据文件
set /a CHUNCK_NUMBER=0
set /a LINE_COUNT=0
for /f "tokens=1 delims=:" %%a in ('find /c /v "" ^< %INPUT_FILE%') do set TOTAL_LINES=%%a
for /f "usebackq delims=" %%a in ("%INPUT_FILE%") do (
set /a LINE_COUNT+=1
set /a LINE_MOD=!LINE_COUNT! %% !CHUNK_SIZE!
if !LINE_MOD! equ 1 (
set /a CHUNK_NUMBER+=1
set OUTPUT_FILE=%OUTPUT_FOLDER%\chunk!CHUNK_NUMBER!.txt
echo 分割文件:!OUTPUT_FILE!
echo. > !OUTPUT_FILE!
)
echo %%a>>!OUTPUT_FILE!
if !LINE_COUNT! equ !TOTAL_LINES! (
echo 数据分割完成!
timeout /t 3 >nul
)
)
REM 转换编码格式
if "%OUTPUT_ENCODING%"=="UTF-8" (
for /r %OUTPUT_FOLDER% %%f in (*.txt) do (
echo 转换编码格式为UTF-8:%%f
powershell -Command "(Get-Content '%%f') | Set-Content -Encoding UTF8 '%%~pf%%~nf_utf8.txt'"
del "%%f"
ren "%%~pf%%~nf_utf8.txt" "%%~nf.txt"
)
)
endlocal
|