- @echo off
- setlocal enabledelayedexpansion
- set "filename=字符.txt"
- set "outputfile=output.txt"
- if exist "%outputfile%" del "%outputfile%"
- for /f "usebackq delims=" %%a in ("%filename%") do (
- set "line=%%a"
- for /l %%i in (0,1,!strlen!) do (
- set "char=!line:~%%i,1!"
- echo !char!>>"%outputfile%"
- )
- )
- echo "转换完成"
- exit /b
- :: 函数:获取字符串长度
- :setlen
- setlocal
- set "s=!%~1!"
- set "len=0"
- for /l %%i in (0,1,32767) do if not "!s:~%%i,1!"=="" set /a "len=%%i+1"
- endlocal & set "%~2=%len%"
- exit /b
复制代码 首先,定义了输入文件名为字符.txt和输出文件名为output.txt。接着,使用for循环逐行读取输入文件,对于每一行,获取其长度并逐个字符处理。内部使用了一个自定义函数setlen来获取字符串长度。在内部的循环中,使用字符串切片来逐个获取字符,并将每个字符写入输出文件output.txt的一行。最后输出"转换完成",并退出脚本。
注意:如果输入文件包含 UTF-8 编码的中文字符,需要将脚本文件保存为 UTF-8 编码,并在脚本文件开头添加chcp 65001以设置命令行窗口的字符编码。 |