Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] перемещение файлов , последних по имени

Ответить
Настройки темы
CMD/BAT - [решено] перемещение файлов , последних по имени

Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


Здравствуйте.
Можно ли переместить количество файлов, которое я укажу, из одного каталога в другой, начиная с последнего?
т.е. если к примеру я указал количество 2, а в каталоге файлы 0001.news 0002.news 0003.news 0004.news 0005.news 0006.news, чтобы переместились файлы 0006.news и 0005.news

Отправлено: 23:30, 20-08-2014

 

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Alexander_88, здравствуйте. Вот код:


Код: Выделить весь код
@echo off

set number=2
set index_format=4
set "extension=.news"
set "in=D:\Test 1"
set "out=D:\Test 2"

for /f %%i in ('
 set /a index_format-1
') do (
 for /l %%j in (1 1 %%i) do (
  call set zeros=0%%zeros%%
  )
 )
for /f "delims=" %%i in ('
 dir /a-d/b/o-n "%in%\*%extension%"
') do (
 for /f "tokens=* delims=0" %%j in ("%%~ni") do (
  for /f %%k in ('
   set /a %%j-%number%+1
  ') do (
   for /l %%l in (%%j -1 %%k) do (
    set $index=%zeros%%%l
    call move "%in%\%%$index:~-%index_format%%%%extension%" "%out%">nul
    )
   )
  )
  exit /b
 )
.

Последний раз редактировалось Georgio, 21-08-2014 в 01:30.


Отправлено: 00:28, 21-08-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


где- то я походу ошибку допустил, не хочет перемещать
Код: Выделить весь код
@echo off

set number=2
set index_format=4
set "extension=.news"
set "in=C:\work\new\"
set "out=C:\work\new\1"

for /f %%i in ('
 set /a index_format-1
') do (
 for /l %%j in (1 1 3) do (
  call set zeros=0%%zeros%%
  )
 )
for /f "delims=" %%i in ('
 dir /a-d/b/o-n "%in%\*%extension%"
') do (
 for /f "tokens=* delims=0" %%j in ("%%~ni") do (
  for /f %%k in ('
   set /a %%j-%number%+1
  ') do (
   for /l %%l in (%%j -1 %%k) do (
    set $index=%zeros%%%l
    call move "%in%\%%$index:~-%index_format%%%%extension%" "%out%">nul
    )
   )
  )
  exit /b
 )

Отправлено: 01:07, 21-08-2014 | #3


Ветеран


Сообщения: 531
Благодарности: 4

Профиль | Отправить PM | Цитировать


понял в чем дело, просто название файлов числа + буквы, к примеру 0001start, 0003finish

Последний раз редактировалось Alexander_88, 21-08-2014 в 07:07.


Отправлено: 07:00, 21-08-2014 | #4


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Alexander_88, предлагаю изменить условие задания в теме, взаимно удалить ответы и начать "с нуля" с новой, корректно поставленной, задачи, и тогда я или кто-нибудь ещё её Вам решат.
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:36, 21-08-2014 | #5


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Alexander_88, вот код для сложного случая, когда в одной папке находятся файлы с различными "корневыми именами" (или без таковых) и с различными форматами индекса в качестве префикса:



Код: Выделить весь код
@echo off

set number=2
set "const=root.exp"
set index_format=4
set "in=D:\Test 1"
set "out=D:\Test 2"

for /l %%i in (1 1 %index_format%) do (
 call set reg_exp=[0-9]%%reg_exp%%
 )
for /f "delims=" %%i in ('
 dir /a-d/b/o-n "%in%\*%const%"^| findstr /r "^%reg_exp%"
') do (
 set /a count+=1
 for /f %%j in ('
  set /a count
 ') do (
  if %%j leq %number% (
   move "%in%\%%i" "%out%">nul
   ) else (
   exit /b
   )
  )
 )


.

Отправлено: 13:39, 21-08-2014 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] перемещение файлов , последних по имени

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - перемещение файлов в каталог созданный из части имени файла surrender1 Скриптовые языки администрирования Windows 9 10-10-2013 14:42
CMD/BAT - Перемещение файлов по списку Arsenik77 Скриптовые языки администрирования Windows 4 04-12-2011 20:43
CMD/BAT - Перемещение файлов по маске SanyaJoker Скриптовые языки администрирования Windows 0 17-11-2011 12:54
CMD/BAT - [решено] Перемещение файлов из одной папки в разные в зависимости от имени файла Sarge81 Скриптовые языки администрирования Windows 4 20-09-2011 04:20
CMD/BAT - [решено] Создание папок по дате получения файлов и перемещение в них файлов KamikadZZe Скриптовые языки администрирования Windows 1 01-09-2011 14:15




 
Переход