用于将当前目录中的所有DO文件复制到Stata中的另一个文件夹的脚本内命令 [英] In-script command to copy all do files in the current directory to another folder in Stata
本文介绍了用于将当前目录中的所有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文件复制到其他文件夹吗?
谈论某些内容,但"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屋!
查看全文