У меня есть 1760 файлов с именем файла 1.txt - 1760.txt

Я хочу переместить файлы в другую папку с задержкой по порядку

в настоящее время я использую

 move d:\temp\1.txt d:\new\1.txt
 move d:\temp\2.txt d:\new\2.txt
 move d:\temp\3.txt d:\new\3.txt
 move d:\temp\4.txt d:\new\4.txt
 move d:\temp\5.txt d:\new\5.txt
 move d:\temp\6.txt d:\new\6.txt
 move d:\temp\7.txt d:\new\7.txt
 move d:\temp\8.txt d:\new\8.txt
 move d:\temp\9.txt d:\new\9.txt
 move d:\temp\10.txt d:\new\10.txt
 move d:\temp\11.txt d:\new\11.txt

но в результате есть дела 10.txt и 11.txt переместятся первыми

Цените все, что вы помогаете.

Эндрю

2 ответа2

0

переместить d:\temp\1.txt d:\new\1.txt
Выбор /C yn / DY / T 3
переместить d:\temp\2.txt d:\new\2.txt
Выбор /C yn / DY / T 3
переместить d:\temp\3.txt d:\new\3.txt
Выбор /C yn / DY / T 3

и т.п. Если память мне не изменяет, Choice был представлен в MS-DOS 6. (Некоторые из этих параметров командной строки могут быть новее этого.)

Я считаю весьма вероятным, что ваши файлы могут быть в том порядке, в котором вы хотите, но вы сортируете их буквенно-цифровым способом (в результате чего "10" появляется перед "2", точно так же, как "ao" появляется перед "b").

Я только что поэкспериментировал:

эхо а> а
эхо с> с
эхо б> б

Теперь я думал, что COMMAND.COM (и, вероятно, CMD) будет по умолчанию для неупорядоченной сортировки. Но, если быть точным, я использовал TCMD от JPSoftware, который поддерживает параметр /OU (для DIR), который явно объявляет, что желательна неупорядоченная сортировка. И это все еще показал мне a, затем b, затем c

Наиболее логичным выводом является то, что моя операционная система (в настоящее время в системе Windows 10) предпочитает хранить файлы на диске в отсортированном виде. Это перевешивает последствия моих попыток сказать программам, что программы не должны сортировать результаты чтения с диска.

0

Вы предлагаете имена файлов с порядковыми номерами от 1 до 1170, но, скажем, всего их 1760. В диапазоне от 1 до 1170 не существует 1760 целых чисел. Предполагая, что вы хотите от 1 до 1170 в числовом порядке:

FOR /L %i (1,1,1170) DO ( MOVE d:\temp\%i.txt d:\new & timeout /nobreak 3 >NUL )

(Если используется внутри файла .bat а не интерактивно, удвойте знаки процента.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .