Loops 在文件上循环时出错,-fs-命令

Loops 在文件上循环时出错,-fs-命令,loops,foreach,split,stata,Loops,Foreach,Split,Stata,我试图将一些数据集分为两部分,在如下文件上运行循环: cd C:\Users\Macrina\Documents\exports qui fs * foreach f in `r(files)' { use `r(files)' keep id adv* save adv_spa*.dta clear use `r(files)' drop adv* save fin_spa*.dta }

我试图将一些数据集分为两部分,在如下文件上运行循环:

 cd C:\Users\Macrina\Documents\exports
 qui fs *
 foreach f in `r(files)' {
    use `r(files)'
        keep id adv*
        save adv_spa*.dta
        clear
    use `r(files)'
        drop adv*
        save fin_spa*.dta
 }
我不知道循环中的内容是否正确写入,但关键是我得到了错误:

invalid '"e2.dta'
其中e2.dta是文件夹中的第二个文件。此消息是指循环还是指循环内的内容?错在哪里

你想要像这样的线条吗

use "`f'"
不是

考虑到
fs
(如您应该解释的,从SSC安装)返回
r(文件)
,作为所有文件的列表,而您希望
依次使用
(不是一次全部)

错误消息提供了信息:
use
对它看到的第二个文件名感到困惑(因为只有一个文件名有意义)。其他文件名被忽略:
use
一旦出现明显错误就会失败


顺便说一句,请注意,如果文件名中包含空格,则在文件名周围放置
”仍然很重要

您的操作系统是否允许将
adv_spa*.dta
作为文件名?考虑到引用带有通配符符号的文件的范围,我认为这是非法的。是的,你是对的。它没有按我希望的那样工作,我收到一条错误消息:无法打开文件advisors_西班牙*.dta。我尝试重新命名它们。
use `r(files)'