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
- 下一篇: C++移位得到int型最大值