脚本推荐-定时日志

Posted on 2023-04-12 23:25  绿叶落秋风  阅读(32)  评论(0编辑  收藏  举报

定时日志

简介

  • 在设计时,常常忘记时间
  • 一些需要记录的东西往往由于没有养成习惯而忘记记录
  • 这样导致无法追溯设计的日志
    • 失去了分析个人能力和效率的手段
  • 为了强制养成写日志的习惯
    • 研发了一个定时日志的脚本
    • 利用win的定时器触发
    • 每小时弹出一个写日志的输入框
    • 并自动添加时间到log文件

bat启动文件

  • every_hour_exec.bat
rem get script path
set pns_own=%0
set p_own=%~dp0%
set n_own=%~n0%
rem get tcl script
set pns_tcl="%p_own%%n_own%.tcl"

rem start tcl
start "tcl" %SF_P_WISH% %pns_tcl:\=/% 

tcl窗口文件

  • every_hour_exec.tcl
## *******************************************************************************
## Company: fpgaPublish
## Engineer: f
## 
## Create Date: 2023/03/12 10:39:19
## Design Name: every_hour_exec
## Module Name: 
## Project Name: 
## Target Devices: 
## Tool Versions: 
## Description: 
## 
## Dependencies: 
##  
## Revision: 
## Revision 0.01 - File Created 
## Additional Comments:
## 
## *********************************************************************************
encoding system utf-8
# get path
variable v_own [file normalize [info script]]
#path
set pns_own [file nativename $v_own]
set p_own [file dirname $pns_own]

# =====================================================
# close win and load last setting
set i_id [after 300000 {destroy .}]

# write data
proc write {t_task p_log i_id} {
    set now [clock seconds]
    set timestr [clock format $now -format "%D %H:%M:%S"]
    set pns_file $p_log
    set f [open $pns_file a+]
    puts $f "---"
    puts $f "\#\# $timestr"
    puts $f $t_task
    #puts $f "\n"
    close $f
    
    after cancel $i_id
    destroy .
}
## get path param
cd $p_own
cd .
set ns_param_init "script_parameter.ini"
set f_param [open $ns_param_init r]
set v_param [read $f_param]
close $f_param
cd $p_own
# get path
set s_log_path [list]
set s_log_path [regexp -all -inline {[\s]*log_path[\s]*=(.*)} $v_param]
set p_log [lindex $s_log_path 1]
## add win to control
set t_task {* }
label .label -text "this hour log:"
button .ok -text ok -command {write $t_task $p_log $i_id}
bind . <Return> {write $t_task $p_log $i_id}
entry .entry -width 100 -relief sunken -bd 2 -textvariable t_task  
grid .label .entry .ok -padx 20m -pady 1m


  • script_parameter.ini配置文件放置在同目录下
;win10
log_path=D:/f1_library2/b0_script_app/c1_win_timer/every_hour_log.md //日志缓存的目录

win定时器设置

  • 在我的电脑右键菜单管理里面
  • 配置定时执行bat的脚本即可
    img

效果

  • 弹窗效果
    img
  • 日志效果
---
## 04/12/2023 23:06:56
* 公布一个小脚本

小结

  • 实现了定时提醒写日志的功能
  • 完成了输出结果的缓存
  • 验证了TCL/TK开发窗口应用的方法