Ordenar y copiar archivos de texto en la línea de comandos en un solo archivo genera un error

Ordenar y copiar archivos de texto en la línea de comandos en un solo archivo genera un error

Me topé con la pregunta 217394 que explica cómo copiar archivos ordenados alfabéticamente en un solo archivo. Al intentar implementar el comando yo mismo, apareció el siguiente mensaje de error: El sistema no puede encontrar el archivo especificado.
El comando que estoy intentando ejecutar está aquí:

para /f %i en ('dir /ad /on /b O:\OrdersExport\Order*.txt') haga @type %i >> C:\Users\Admin\Documents\OrderImport.txt

El error no aparece si busqué primero la carpeta en cuestión:

C:\>O:
C:\>cd Importación de pedidos

Simplemente quiero copiar una línea desde el destino a ese único archivo.

Por cierto, si es importante, O: es una carpeta asignada a través de la red.

Respuesta1

El dircomando enumera solo los nombres de archivos. Entonces %ila variable está llena de rutas relativas. Si el comando no se ejecuta desde el directorio en cuestión, utilice %~fipara expandir la ruta relativa a la ruta absoluta.

for /f "tokens=*" %i in ('dir /a-d /o-n /b "O:\OrdersExport\Order*.txt"') do (
    @type "%~fi" >> "C:\Users\Admin\Documents\OrderImport.txt"
)
  • tokens=*trata con espacios en los nombres de archivos, por lo que %isiempre es la línea completa de la dirsalida.

información relacionada