batch批处理程序easyadd——追加单行文本到指定txt文件末尾
生活随笔
收集整理的这篇文章主要介绍了
batch批处理程序easyadd——追加单行文本到指定txt文件末尾
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
介绍
有时候需要打开记事本在末尾追加文本,如果手动找到txt文件,再打开txt文件,按 ctrl+home 到达文末,才能完成对txt文件的追加,比较繁琐。而且如果txt文件很大(比如词典文件),手动打开txt追加显然不现实。下面这个批处理程序easyadd.bat实现从控制台读入行并写入到选定的txt文件中。笔者主要用来添加词条到rime的词库文件。
使用说明:需要新建一个 path.ini 用于存储txt文件的路径条目,并且在.bat中修改 set pathfile="E:\Projects\easyadd\path.ini" 中路径为你的 path.ini 路径。
由于笔者主要用来调教词库,需要输入制表符,而控制台摁tab只会补全代码,无论如何键入不了制表符,所以只能让bat脚本识别输入中的 \t 并替换为制表符set entry=%entry:\t= %,要输入制表符的时候输入 \t 就好了。
easyadd.bat 代码如下:
@echo off &setlocal enabledelayedexpansion :begin set pathfile="D:\rime\EasyAdd\path.ini" set deployer="D:\rime\EasyAdd\deployer.exe" for /f "eol=# tokens=1,2,3 delims= usebackq" %%a in (%pathfile%) do (set /p=[%%a]%%b^(%%c^) <nul) echo [0]直接部署rem <1> 选择目录 :retry set /p choice=^<标号^> if not defined choice (set /p=<nul&goto retry) if %choice% ==0 (echo 直接部署 & goto deploy) for /f "eol=# tokens=3,4 delims= usebackq" %%a in (%pathfile%) do (if %%a==%choice% (set full_pathg=%%b & goto next) ) for /f "eol=# tokens=1,4 delims= usebackq" %%a in (%pathfile%) do (if %%a==%choice% (set full_pathg=%%b) ) if not defined full_pathg (set /p=<nul&goto retry) :next call :deal %full_pathg%rem <2> 检验文件 if not exist %full_path% goto nofile :filedrem <3> 输入词条 :retry2 set /p entry=^<词条^> if not defined entry (goto retry2q) rem 替换\t set entry=%entry:\t= % echo %entry%>>%full_path% goto end0 :retry2q set /p retry2_yon=再试一次?(y/n) if not defined retry2_yon (set retry2_yon=y) if /i %retry2_yon% EQU y (goto retry2) else (echo 放弃添加 & goto end)rem <2.1> 文件不存在时新建 :nofile if %full_path%==A:\ goto ini echo 目录下%dp%未找到文件%nx% set /p new_yon=是否新建文档?(y/n) if not defined new_yon set new_yon=y if /i not %new_yon% EQU y (echo 放弃新建 & goto end) rem 新建文档操作 type nul>%full_path% if exist %full_path% (echo 新建成功 &goto filed) else (echo 错误路径 & goto ini)rem 打开ini文件 :ini :set /p=请配置path.ini并保存<nul start %pathfile:"=% exitrem 非正常退出 :end echo.&pause exitrem 完成并退出 :end0 echo. & echo "%entry%"--^>%nx% & echo. set res=F if %choice%==ck set res=T if %choice%==2 set res=T if %choice%==wb set res=T if %choice%==3 set res=T if %res%==T ( :deploy start /b %deployer:"=% /deployer&&echo 部署完毕||echo 部署运行失败 ) echo.&pause exitrem <1.1> 参数扩充 :deal set n=%~n1 set nx=%~nx1 set dp=%~dp1 set full_path=%~1path.ini 示例
# easyadd paths configuration # encoding: utf-8#路径目录 #序号 名称 简写 路径 1 单词 dc "E:\JianGuoYun\单词本.txt" 2 自词库 ck "D:\rime\custom_phrase.txt" 3 五笔 wb "D:\rime\wubi86_extended.dict.yaml"0 打开路径配置 pz "A:\"使用示例
注意:本程序涉及的所有文件都是utf-8编码方式;另外控制台想显示unicode字符可通过注册表修改代码页,详情请百度。
PS:将输入重定向能实现由文件输入。
创作挑战赛新人创作奖励来咯,坚持创作打卡瓜分现金大奖总结
以上是生活随笔为你收集整理的batch批处理程序easyadd——追加单行文本到指定txt文件末尾的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: JavaSE——面向对象进阶(封装、th
- 下一篇: 建立带头结点的双向链表_尾插法