mova d: \ temp \ 1.txt d: \ new \ 1.txt escolha / C yn / D Y / T 3 mova d: \ temp \ 2.txt d: \ new \ 2.txt escolha / C yn / D Y / T 3 mova d: \ temp \ 3.txt d: \ new \ 3.txt escolha / C yn / D Y / T 3
etc Se minha memória está me servindo corretamente, Choice foi introduzido no MS-DOS 6. (Alguns desses parâmetros de linha de comando podem ser mais recentes que isso).
Acho muito provável que seus arquivos estejam na ordem desejada, mas você os classifica alfanumericamente (fazendo com que "10" apareça antes de "2", assim como "ao" aparece antes de "b").
Eu acabei de fazer algumas experiências:
echo a & gt; uma echo c & gt; c echo b & gt; b
Agora eu pensei que o COMMAND.COM (e provavelmente o CMD) fosse padronizado para um tipo não ordenado. Mas, para ser minucioso, usei o TCMD da JPSoftware, que suporta uma opção / OU (para DIR) que declara explicitamente que uma classificação não ordenada é desejada. E isso ainda me mostrou a, então b, então c
A conclusão mais lógica é que meu sistema operacional (atualmente em um sistema Windows 10) está optando por armazenar os arquivos no disco de forma ordenada. Isso está sobrescrevendo os efeitos de minhas tentativas de dizer aos programas que os programas não deveriam classificar os resultados do que é lido no disco.
Mais provavelmente o sistema de arquivos. Diretórios NTFS são classificados no disco, FAT * não são.
dave_thompson_085
0
Você sugere que os nomes dos arquivos sejam números consecutivos de 1 a 1170, mas digamos que haja 1760 no total. Não há 1760 inteiros no intervalo de 1 a 1170. Supondo que você deseja 1 a 1170, em ordem numérica:
FOR /L %i (1,1,1170) DO ( MOVE d:\temp\%i.txt d:\new & timeout /nobreak 3 >NUL )
(Se usado dentro de um .bat arquivo em vez de interativo, o dobro dos sinais de porcentagem.)
Você sugere que os nomes dos arquivos sejam números consecutivos de 1 a 1170, mas digamos que haja 1760 no total. Não há 1760 inteiros no intervalo de 1 a 1170. Supondo que você deseja 1 a 1170, em ordem numérica:
FOR /L %i (1,1,1170) DO ( MOVE d:\temp\%i.txt d:\new & timeout /nobreak 3 >NUL )
(Se usado dentro de um
.bat
arquivo em vez de interativo, o dobro dos sinais de porcentagem.)fonte