Как получить полный список подкаталогов (включая подкаталоги подкаталогов)?

У меня тысячи городских папок (напримерcity1, city2и так далее, но на самом деле назван какNewYork, Boston, так далее.). Каждая папка дополнительно содержит две подпапки:land а такжеhouse.

Таким образом, структура каталогов выглядит так:

current dictionary
  ---- city1
     ----- house 
         ------ many .xlsx files
     ----- land
  ----- city2
  ----- city3
  ···
  ----- city1000

Я хочу получить полный список всех подкаталогов и сделать некоторые манипуляции (например,import excel). Я знаю, что есть макро расширенная функция:local list: dir чтобы решить эту проблему, но, кажется, он может только вернутьfirst tier подкатегорий, какcity_iа не те, что глубже.

В частности, если я хочу принять меры во всех домашних папках, какой рабочий процесс мне нужен?

Я сделал первоначальную попытку написать код для достижения моей цели:

cd G:\Data_backup\Soufang_data
local folder: dir . dirs "*"
foreach i of local folder {
     local `i'_house : dir  "G:\Data_backup\Soufang_data\``i''\house" files "*.xlsx"

     local count = 1
     foreach j of local `i'_house {
        cap import excel "`j'",clear
        cap sxpose,clear
        cap drop in 1/1

        if `count'==1 {
          save `i'.dta, replace
            }
        else          {
         cap qui append using `i'
         save `i'.dta,replace
            }

       local ++count
     }
}

Что-то не так с:

``i'' 

в директории я изо всех сил пытался заставить это работать без успеха, так или иначе.

я имеюдругой пост на этом проекте.

Дополнительные замечания:

Как отмечает Ник, проблема заключается в обратном слэше. Переходя от этого момента, я сталкиваюсь с другой проблемой. Скажем, без сложных действий я просто хочу проверить, работают ли мои циклы, поэтому я пишу следующий фрагмент кода:

set more off
cd G:\Data_backup\Soufang_data
local folder: dir . dirs "*"
foreach i of local folder {
     di "`i'"
     local `i'_house : dir  "G:\Data_backup\Soufang_data/`i'\house" files "*.xlsx"

     foreach j of local `i'_house {
        di "`j'"
     }
}

Тем не менее, результат на экране выглядит примерно так:

city1
project100
project99
······
project1

Кажется, код только зацикливается на один раунд, над первым городом, но не может прийти кcity2, city3 и так далее. Я подозреваю, что это из-за моего проблемного написания местного, особенно в этой строке, но я не уверен:

foreach j of local `i'_house

Ответы на вопрос(2)

Ваш ответ на вопрос