Saltar al contenido principal

Comodines en nombres de rutas de Windows

Los usuarios han estado pidiendo durante años la posibilidad de utilizar comodines en los nombres de los directorios y en los nombres de los archivos. Por ejemplo, para copiar archivos cuyo nombre coincida con “foo*” y cuyo nombre de directorio principal coincida con “a*z”:

copiar c:\misarchivos\a*z\foo* d:\foo

O para copiar archivos cuyo nombre coincida con “foo*” en cualquier subdirectorio de c:\myfiles:

copiar c:\misarchivos\**\foo* d:\foo

Este tipo de comodines son comunes en Linux, pero la escasez de aplicaciones de Windows que admitan esta sintaxis implica que Windows no es especialmente acogedor (¡está bien, implacablemente hostil!) a los nombres de archivos con comodines en el componente de nombre de ruta. Pero después de mucho esfuerzo y prueba y error, pudimos implementar comodines de directorio en TCC 12.0 (solo para comandos y funciones internas).

Puede controlar la recursividad del subdirectorio especificando * o ** en la ruta. Un * (o un nombre parcial con un * y/o uno o más ?) coincidirá con un único nivel de subdirectorio; un ** coincidirá con todos los niveles de subdirectorio para ese nombre de ruta. También puede utilizar expresiones regulares como comodines de directorio.

Los comodines de directorio no se pueden utilizar con la opción /O:… (que ordena las entradas antes de ejecutar el comando). ¡Y piense con mucho cuidado antes de usar comodines de directorio con una opción /S (subdirectorios recursivos), ya que esto casi seguramente arrojará resultados inesperados!

Hay algunos comandos y funciones que no admiten comodines de directorio, ya que carecerían de sentido o serían destructivos (por ejemplo, TREE, @FILEOPEN, @FILEDATE, etc.).