¿Cómo tokenizar una macro extendida (local: dir)?

Sé que mi título es confuso en el sentido de que eltokenize El comando se especifica en una cadena.

Tengo muchas carpetas que contienen archivos de Excel masivos, separados y mal nombrados (la mayoría de ellos se eliminan del sitio web). Es inconveniente seleccionarlos manualmente, así que necesito confiar en la función de macro extendida de Statalocal :dir para leerlos

Mi código se ve de la siguiente manera:

foreach file of local filelist {
    import excel "`file'", clear
    sxpose, clear 
    save "`file'.dta", replace
}

Tal código generará muchos nuevosdta archivos y el directorio está lleno de estos archivos. Prefiero crear un único archivo de datos nuevo para el primeroxlsx archivo y luegoappend otros a ella dentro de laforeach lazo. Entonces, esencialmente, hay unif-else dentro del bucle.

Necesitamos un índice de la macro.filelist recién creado, para que podamos escribir algo como:

token `filelist'  // filelist is created in the former code

if "`i'" == `1' {
   import excel "`file'",clear
}
else {
   append using `i',clear
}

Sé que mi código es ineficiente y propenso a errores: la sintaxis de expresióntoken 'filelist' es incorrecto también (dado quefilelist no es una cadena) Sin embargo, todavía quiero descubrir la estructura básica detrás de mi pseudocódigo.

¿Cómo podría corregir mi código y hacerlo funcionar?

Otro enfoque más eficiente es muy bienvenido.

Respuestas a la pregunta(1)

Su respuesta a la pregunta