especifica a ordem de classificação em “copy / b * .dat foo” no Windows cmd

2

Normalmente, quando eu faço um copy /b *.data foo no Windows cmd, os arquivos *.data são catenados na ordem classificada para o arquivo de destino foo . Isso corresponde ao meu comportamento desejado.

No entanto, acabei de conhecer um curioso diretório no qual este comando copy /b copia os arquivos fora de ordem. A ordem não é exatamente aleatória, mas o segundo último arquivo na ordem classificada será o primeiro, seguido pelos arquivos restantes na ordem de classificação.

Existe uma maneira de superar esse comportamento estranho de classificação? Mais genericamente, e se eu quiser copiar os arquivos, digamos, na ordem inversa?

    
por maverickwoo 02.12.2010 / 03:35

1 resposta

2

Isso concatenará os arquivos ( mesmo os com espaços ) na ordem inversa:

C:\> for /f "tokens=*" %i in ('dir /a-d /o-n /b c:\some_dir\*') do @type %i >> c:\another_dir\dest.dat

Se houver apenas alguns arquivos, você poderá listá-los explicitamente:

C:\> copy /b c.dat+a.dat+b.dat dest.dat

Algo como isso pode funcionar em algumas situações:

C:\> copy /b file*.dat+foo.dat+bar*.dat dest.dat
    
por 02.12.2010 / 05:37