楼主: hiderm
9527 7

求教(已解决):文件名自动生成为当前日期+时间(如:21Nov2012_215435.smcl)) [推广有奖]

已卖:5227份资源

院士

59%

还不是VIP/贵宾

-

威望
1
论坛币
59505 个
通用积分
4044.5148
学术水平
253 点
热心指数
332 点
信用等级
219 点
经验
76220 点
帖子
2202
精华
1
在线时间
2767 小时
注册时间
2006-6-3
最后登录
2025-9-20

楼主
hiderm 发表于 2012-11-21 22:07:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本人刚开始自学stata,从论坛里面下载的stata 11免安装压缩包,在命令窗口输入:. doedit `c(sysdir_stata)'profile.do

可以发现里面有profile.do 文件有这样一段程序:

local fn = subinstr("`c(current time)'",":","",2)  /*这一串是设定log文件的,钟经樊发明!*/
log using .\log\s`fn'.smcl, smcl replace
cmdlog using .\log\c`fn'.log, replace

这段程序可以实现打开stata软件后自动生成以打开时间为文件名的日志文件(.smcl 或 .log),比如:215435.smcl或215435.log(即是在21点54分35秒打开的stata软件)

我的问题是:如何实现打开stata软件后自动生成的日志文件是以当前日期时间为文件名的?
ps:这一点连玉君老师有提过,但我没有看到程序。

我现在的尝试结果是,如果将第一段程序更换为:

local fn = subinstr("`c(current_date )'"," ","",2)  /*第一个和第二个逗号中间的两个双引号之间是一个半角空格*/
log using .\log\s`fn'.smcl, smcl replace
cmdlog using .\log\c`fn'.log, replace


那么可以实现将日志文件名生成为21Nov2012.smcl 或21Nov2012.log的形式(以今天为例)

如何才能让日志文件自动生成为21Nov2012_215435.smcl这样的格式呢?希望各位坛友能够提供帮助,在此先谢过了!






二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:smcl 自动生成 文件名 已解决 SMC 时间 replace current local

[b][color=Red]提请应助者注意:请不要上传draft或者wp版本,谢谢!因为这些版本我自己用谷歌搜索就可以搜到并免费下载

沙发
大白菜2012 发表于 2012-11-22 01:22:49
. display  %td  date("$S_DATE", "DMY") "_" substr("$S_TIME",1,2) substr("$S_TIME",4,2) substr("$S_TIME",7,2)



21nov2012_121442
元芳,侬怎么L00K?

藤椅
hiderm 发表于 2012-11-22 09:26:10
期待更多坛友的回复!
[b][color=Red]提请应助者注意:请不要上传draft或者wp版本,谢谢!因为这些版本我自己用谷歌搜索就可以搜到并免费下载

板凳
hiderm 发表于 2012-11-22 09:50:50
希望连老师能够不吝赐教
[b][color=Red]提请应助者注意:请不要上传draft或者wp版本,谢谢!因为这些版本我自己用谷歌搜索就可以搜到并免费下载

报纸
hiderm 发表于 2012-11-22 12:29:33
看了连老师(@arlionn )提供的stata11SE程序压缩包中的profile.do文件,终于知道如何设置了!牛人就是牛啊!十分感谢连老师!

打开stata11,在命令窗口输入如下命令打开profile.do文件:

doedit `c(sysdir_stata)'profile.do

将其中设定日志文件名自动生成的程序写为:

. local fnd = subinstr("`c(current_date )'"," ","",3)    /*第一个和第二个逗号中间的两个双引号之间是一个半角空格*/
. local fnt = subinstr("`c(current_time)'",":","",2)   
. log using .\log\s`fnd'_`fnt'.smcl, smcl replace
. cmdlog using .\log\c`fnd'_`fnt'.log, replace
这样修改后,每次打开stata软件,就会在log文件夹自动生成文件名为
“21Nov2012_215435.log”

这样的日志文件了。


[b][color=Red]提请应助者注意:请不要上传draft或者wp版本,谢谢!因为这些版本我自己用谷歌搜索就可以搜到并免费下载

地板
jzhyue 发表于 2012-11-22 21:35:59 来自手机
hiderm 发表于 2012-11-22 12:29
看了连老师(@arlionn )提供的stata11SE程序压缩包中的profile.do文件,终于知道如何设置了!牛人就是牛啊 ...
2楼就是给你提供的这个方法

7
hiderm 发表于 2012-11-23 09:43:44
大白菜2012 发表于 2012-11-22 01:22
. display  %td  date("$S_DATE", "DMY") "_" substr("$S_TIME",1,2) substr("$S_TIME",4,2) substr("$S_TI ...
多谢啦! 学习理解中!
[b][color=Red]提请应助者注意:请不要上传draft或者wp版本,谢谢!因为这些版本我自己用谷歌搜索就可以搜到并免费下载

8
hiderm 发表于 2012-11-23 09:45:42
jzhyue 发表于 2012-11-22 21:35
2楼就是给你提供的这个方法
多谢指教!
[b][color=Red]提请应助者注意:请不要上传draft或者wp版本,谢谢!因为这些版本我自己用谷歌搜索就可以搜到并免费下载

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-20 16:42