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=%~1

path.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:将输入重定向能实现由文件输入。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491973.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

短信备份(原)

昨天在学习回调的时候&#xff0c;发现了其独特的魅力之处&#xff0c;它将业务代码逻辑和我们的工具类耦合性大大降低了。 应用场景&#xff1a;在实际开发中&#xff0c;经常会随着用户的需求的改变而对对话框的样式进行相应修改&#xff0c;在短信的备份过程中&#xff0c;往…

今年的谷歌I/O大会,或许会有这些东西

来源 | 网易科技据国外媒体报道&#xff0c;当地时间5月7日&#xff0c;2019年度谷歌I/O开发者大会将在加州的海岸线圆形剧场(Shoreline Amphitheater)举行。届时&#xff0c;包括谷歌首席执行官桑达尔皮查伊(Sundar Pichai)等公司高管将登台发表演讲。谷歌将在本届开发者大会上…

贪吃蛇C语言

有趣的小游戏&#xff0c;实现关键点有光标移动&#xff0c;按键检测&#xff0c;状态转移&#xff0c;随机数生成等。欢迎讨论&#xff01; #include<stdio.h> #include<windows.h> #include<time.h> #include<conio.h>#define UP w #define DOWN s…

WebClient 上传文件

MVC下 服务端代码&#xff1a; [HttpPost]public ActionResult UploadImg(string types){string data "";try{if (types "image"){foreach (string f in Request.Files.AllKeys){string pathT HttpRuntime.AppDomainAppPath.ToString() "/UpLoadI…

全球及美国首张无人机配送商业化“驾照”先后落地,国内还要多久?

来源&#xff1a;智能相对论&#xff08;aixdlun&#xff09;前不久&#xff0c;美国首张无人机配送“驾照”正式落地&#xff0c;获得者还是之前在澳大利亚拿下全球首张无人机商业飞行许可的谷歌。最早提出无人机配送的亚马逊被谷歌两次捷足先登&#xff0c;贝佐斯心里一定不好…

stringBuffer的使用及字符串比较的区别

/* * 关于equals()和: 对于String简单来说就是比较两字符串的Unicode序列是否相当&#xff0c;如果相等返回true; * 而是比较两字符串的地址是否相同&#xff0c;也就是是否是同一个字符串的引用。 * * 为了高效的修改字符串Java引入了StringBuffer。 */public class test { p…

IBM的医疗AI为何失败

来源&#xff1a;陆志方科学网博客最近&#xff0c;看到一篇关于医疗AI的文章《IBM医疗AI宣告失败&#xff0c;率先入局却踏步不前》。1997年IBM深蓝战胜国际象棋世界冠军卡斯帕罗夫&#xff0c;名声大噪&#xff1b;2011年开始&#xff0c;IBM在医疗AI押上重注&#xff0c;此后…

C 函数

函数 1. 什么是函数 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的 每个程序段都有自己的功能 我们一般称这些程序段为"函数" 所以 可以说C语言程序是由函数构成的 2. 函数的定义 1> 定义函数的目的 将一个常用的功能封装起来 方便以后调用 2> 定义…

机器学习加深了“知识”和“理解”之间的鸿沟

来源&#xff1a;36氪无法理解人工智能“黑箱”&#xff0c;人工智能就能帮我们理解世界吗&#xff1f;编者按&#xff1a;机器学习和互联网意味着海量数据和复杂的联系&#xff0c;同时也意味着人类无法理解的运行过程——人工智能的“黑箱”是近期学界热议的一个话题&#xf…

Scanner的使用

Scanner可以实现从字符串、输入流和文件的读取&#xff0c;在构造时可以选择你需要的读取方式&#xff0c;常见的构造方法有如下3个&#xff1a; Scanner(File source):构造一个新的 Scanner&#xff0c;它生成的值是从指定文件扫描的。Scanner(InputStream source):构造一个新…

德国人工智能战略

来源&#xff1a;中国工业和信息化德国联邦政府为了进一步发展和应用人工智能&#xff0c;根据当前的人工智能战略&#xff0c;建立了一个整体的政策框架。首先&#xff0c;联邦政府考虑了人工智能技术的快速发展&#xff0c;以及由新人工智能技术驱动的全球生产和价值链变化。…

LSP(分层服务提供程序)

一、简介 LSP即分层服务提供商&#xff0c;Winsock 作为应用程序的 Windows 的网络套接字工具&#xff0c;可以由称为“分层服务提供商”的机制进行扩展。Winsock LSP 可用于非常广泛的实用用途&#xff0c;包括 Internet 家长控制 (parental control) 和 Web 内容筛选。在以前…

一文看懂70年的人工智能简史

来源&#xff1a;techjury【导读】如果从阿兰图灵1943年首次提出“图灵机”的概念算起&#xff0c;AI已经经历了86年的发展史。本文以信息图的形式回顾了这70多年的标志性事件&#xff0c;并归纳出AI发展的几个方向和技术应用&#xff0c;以及10大AI企业和国家排行榜。这篇AI“…

【codevs2822】爱在心中 tarjan 缩点+理解

【codevs2822】爱在心中 2014年1月26日5580题目描述 Description “每个人都拥有一个梦&#xff0c;即使彼此不相同&#xff0c;能够与你分享&#xff0c;无论失败成功都会感动。爱因为在心中&#xff0c;平凡而不平庸&#xff0c;世界就像迷宫&#xff0c;却又让我们此刻相逢O…

Django中间件与python日志模块 介绍

一、Django中间件 1.1 介绍 Django中的中间件是一个轻量级、底层的插件系统&#xff0c;介于request与response处理之间的一道处理过程&#xff08;用来处理特定业务的请求和响应&#xff09;。中间件的设计为开发者提供了一种无侵入式的开发方式&#xff0c;增强了Django框架…

无人系统自主性研究综述

来源&#xff1a;人机与认知实验室一、引言2012年7月&#xff0c;美国国防科学委员会发布了《自主性在国防部无人系统中的地位》&#xff0c;进一步指出自主能力是美军无人系统中的核心能力&#xff0c;分析了自主能力给无人机(UAV)、无人地面系统(UGS)、无人海上平台(UMV)和无…

hdu - 2667 Proving Equivalences(强连通)

http://acm.hdu.edu.cn/showproblem.php?pid2767 求至少添加多少条边才能变成强连通分量.统计入度为0的点和出度为0的点,取最大值即可. 1 #include <iostream>2 #include <cstdio>3 #include <cmath>4 #include <vector>5 #include <cstring>6 …

HTTP状态码表格汇总

HTTP状态码 一、介绍 ​ 状态码的职责是当客户端向服务器端发送请求时&#xff0c;描述返回的请求结果。借助状态码&#xff0c;用户可以知道服务器端是正常处理了请求&#xff0c;还是出现了错误。 【注意】 状态码是&#xff1a;服务端向客户端发送的反映响应结果的标识码…

一文看尽微软开发者大会 让AI和云驱动一切

来源 | 网易智能一年一度的微软开发者大会Build 2019在美国华盛顿州雷德蒙德拉开帷幕&#xff0c;微软公司CEO萨提亚纳德拉&#xff08;Satya Nadella&#xff09;介绍和发布了一系列全新技术&#xff0c;并在现场展示了以客户为中心的智能体验全新解决方案。微软此次发布的新功…

爬虫文档学习 xpath bs4 selenium scrapy...

爬虫 一、介绍 1、什么是爬虫 1.1 爬虫(Spider)的概念 爬虫用于爬取数据&#xff0c; 又称之为数据采集程序。 爬取的数据来源于网络&#xff0c;网络中的数据可以是由Web服务器&#xff08;Nginx/Apache&#xff09;、数据库服务器(MySQL、Redis)、索引库&#xff08;Ela…