![]() |
Непонятная ошибка при переименовании файлов в цикле
Добрый день!
Такая проблема - периодически поступают файлы следующего формата БББЦЦЦЦЦ.dat, их надо переименовывать с увеличением значения "ЦЦЦЦЦ" на определенную величину Вот такой CMD: Код:
set "ni=06300" Пример списка файлов: tst00171.dat tst00172.dat tst00173.dat tst00774.dat tst01575.dat tst01876.dat tst05577.dat tst09478.dat Всё вроде бы работает, но первый файл переименовывается дважды - первым в цикле (как и должно быть), и перед "tst09478". После первого раза - tst06471.dat, и потом ещё раз - tst12771.dat в итоге вся суть идеи теряет смысл...((( Не пойму, в чем косяк... |
Попробуй так
Код:
@echo off |
Цитата:
Проблема решилась - подсмотрел в "Похожих темах" внизу страницы ))) CMD/BAT - [решено] Ошибка в переименовании группы файлов. |
Цитата:
Из tst00001.dat получаю tst00011, из tst00101.dat -- tst00111.dat, из tst00201.dat -- tst00211.dat и т.д. Попробуйте перезапустить cmd.exe если ее не закрывали. В вашем батнике нет ограничения области видимости переменных и они после выполнения экспортируются в сессию консоли. Посмотрите переменные командой set Попробуйте изменить for на Код:
for /f %%i in ('dir /b tst*.dat') do ... |
Цитата:
до ni=99 - работает (вроде) корректно при ni=100 - получается наложение: tst00001 + 100 = tst00101 (второй файл) а при ni>100 - получается сабж, двойное переименование первого файла. Почему так - кукуй его знает...??? *** Цитата:
|
Цитата:
Код:
for /f %%i in ('dir /b /o-n tst*.dat') do.. |
Не-е... в том то и дело, что у меня по условию переименования "ni" всегда должно быть больше чем цифровая часть любого из файлов из списка.
А с "dir" нормально работает с любым порядком сортировки, т.к. список файлов создается до начала переименования и более не изменяется. |
Код:
@Echo Off |
Если:
Цитата:
Код:
@Echo Off |
Powershell:
Код:
$num = 10 |
не нужно менять то множество, по которому итерируете
складывайте переименованное в другую директорию |
Спасибо всем откликнувшимся, вопрос решен... даже несколькими способами! )))
Как говорится - выбирай на вкус... |
Цитата:
|
Время: 21:38. |
Время: 21:38.
© OSzone.net 2001-