Os arquivos de texto ordenados e copiados por linha de comando para um único arquivo renderizam um erro

1

Eu tropecei na pergunta 217394, que explica como copiar arquivos classificados em ordem alfabética em um único arquivo. Tentando implementar o comando me rendeu a seguinte mensagem de erro: O sistema não pode encontrar o arquivo especificado.
O comando que estou tentando executar está aqui:

for /f %i in ('dir /a-d /o-n /b O:\OrdersExport\Order*.txt') do @type %i >> C:\Users\Admin\Documents\OrderImport.txt

O erro não aparece se eu naveguei para a pasta em questão primeiro:

C:\>O:
C:\>cd OrdersImport

Eu simplesmente quero que uma linha copie do destino para esse único arquivo.

A propósito, se for importante, O: é uma pasta mapeada através da rede

    
por user169997 04.11.2012 / 06:04

1 resposta

0

O comando dir lista apenas os nomes dos arquivos. Portanto, %i variable é preenchida com caminhos relativos. Se o comando não for executado a partir do diretório em questão, use %~fi para expandir o caminho relativo para o caminho absoluto.

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=* lida com espaços em nomes de arquivos, então %i é sempre linha inteira da dir output.
por 17.07.2013 / 08:01