用于将当前目录中的所有DO文件复制到Stata中的另一个文件夹的脚本内命令 [英] In-script command to copy all do files in the current directory to another folder in Stata

查看:20
本文介绍了用于将当前目录中的所有DO文件复制到Stata中的另一个文件夹的脚本内命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是复制命令。

copy "main.do" "main2.do", replace
但是,我想复制当前目录中的所有DO文件,并粘贴到另一个目录中。我希望在不需要指定每个DO文件的文件名的情况下完成此操作。这怎么可能?

来自链接https://www.stata.com/statalist/archive/2006-08/msg00620.html

我试过

cd "C:UsersOwnerGoogle Drive	est"
local files : dir "`c(pwd)'" files "*.do"
foreach file in `files' {
    copy `file' "`file'_copied"
}

这样我至少可以在当前文件夹中复制。但我仍然不知道如何将所有文件复制到另一个文件夹。

=

第二个解决方案。

我可以只获取当前DO文件的文件名,然后将此DO文件复制到其他文件夹吗?

http://www.statalist.org/forums/forum/general-stata-discussion/general/1297295-obtain-name-of-current-do-file

谈论某些内容,但"c(Tmpdir)"仅获取目录名。

=

我做了更多的研究,发现了这个https://ideas.repec.org/c/boc/bocode/s457628.html

推荐答案

反向工作:当前的DO文件不是一个明确定义的概念。DO文件可以嵌套,因此Stata可以以a.do开始,其中b.do调用c.do...那么,目前的DO文件是什么?他们所有人。

正如您所说,您可以通过(例如)

获取当前目录中某类文件的列表
local filelist : dir . files "*.do" 

复制到bar只需要提到bar,尽管您似乎也想更改文件名:

foreach f of local filelist { 
    local F : subinstr local f ".do" "2.do", all  
    copy `f'  bar/`F' 
} 

即使在Windows下,使用正斜杠也是谨慎的。See the discussion here and its references.

此处记录了有用的函数online,并相应地在Stata中进行了说明:

 help extended fcn 

这篇关于用于将当前目录中的所有DO文件复制到Stata中的另一个文件夹的脚本内命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆