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

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

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

Пользователь


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

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


Здравствуйте.
Прошу помощи.

Переместить файлы по маске, кроме Х штук последних, запись в лог.


Похожие примеры уже поднимались в топике.
Прежде чем задаться вопросом искал по форуму, гуглил.
megaloman даже в ответе на один из моих вопросов, недавно, приводил решение для удаления.

Но попробовав сам, переписать решение megaloman на перемещение файлов...
- не получилось, фалы просто копируются куда то в ноль или просто не копируются


Помогите пожалуйста поправить скрипт до рабочего состояния.

Спасибо!



Код: Выделить весь код
@echo off
    Set Too=m:\temp_copid_to
	Call :DelOld "m:\temp_copid_from" "work_*" 3 "m:\temp_copid_to\temp_copid.log"

    pause
Exit /B

:DelOld
	:: FOR /F "usebackq skip=%3 delims=" %%d IN (`2^>nul Dir "%~1\%~2" /B /A:D /O:-N`) DO 2>nul Rd /S /Q "%~1\%%d" &&>>%4 Echo "%~1\%%d"
	:: FOR /F "usebackq skip=%3 delims=" %%d IN (`2^>nul Dir "%~1\%~2" /B /A:D /O:-N`) DO 2>nul move "%~1\%%d" to "%Too%" &&>>%4 Echo "%~1\%%d"
	FOR /F "usebackq skip=%3 delims=" %%d IN (`2^>nul Dir "%~1\%~2" /B /A:D /O:-N`) DO 2>nul move "%~1\%%d" to "%Too%" &&>>%4 Echo "%~1\%%d"
Exit /B

Отправлено: 00:34, 27-11-2020

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


Ребята, осваивайте уже Powershell, ну сколько можно стюардессу-то выкапывать?

Код: Выделить весь код
# variables
$x = 5
$log = "d:\temp\moved.txt"

# process
$filesToMove = dir "D:\temp\images\*.png" |sort CreationTime |select -SkipLast $x
$filesToMove |mv -Destination "D:\temp\images2"

# log
get-date |Out-File "$log" -Encoding default -Append
$filesToMove |ft |Out-File "$log" -Encoding default -Append

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Последний раз редактировалось DJ Mogarych, 27-11-2020 в 09:41.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:09, 27-11-2020 | #2



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

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


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
	>>"e:\Movied.log" Echo ==== %Date% %Time% 
	Call :MoveOld "Z:\Box_In" "Z:\Box_Arc" "work_*.*" 3 "e:\Movied.log"
Exit /B

:MoveOld
	FOR /F "usebackq skip=%4 delims=" %%d IN (`2^>nul Dir "%~1\%~3" /B /A:-D /O:-N`) DO (
		>>%5 Echo Move /Y "%~1\%%d" "%~2\"
		>nul 2>>%5 Move /Y "%~1\%%d" "%~2\"
	)
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:54, 27-11-2020 | #3


Пользователь


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

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


Цитата megaloman:
FOR /F "usebackq skip=%4 delims=" %%d IN (`2^>nul Dir "%~1\%~3" /B /A:-D /O:-N`) DO ( »
megaloman Огромное вам спасибо!

Отправлено: 08:49, 29-11-2020 | #4


Ветеран


Contributor


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

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


blacks2, Только сейчас осознал
Цитата blacks2:
кроме Х штук последних »
Как понять? Сейчас последние по имени (/O:-N в Dir), а если надо по дате/времени последнего изменения, то вместо этого ключа надо /O:-D /T:W. Возможно имена у Вас содержат дату-время в корректном формате, например, ГГГГММДДччммсс, тогда это неважно.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 12:11, 29-11-2020 | #5



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] переместить файлы по папкам согласно списку shadowbat Скриптовые языки администрирования Windows 9 17-11-2023 14:51
CMD/BAT - [решено] поиск файла по маске и запись этого имени в переменную ___dima___ Скриптовые языки администрирования Windows 20 18-06-2017 01:46
PowerShell - Вывод по маске из лог файла. AZABAZA Скриптовые языки администрирования Windows 0 04-12-2015 10:58
CMD/BAT - Удаление всех папок кроме 30-ти последних __sa__nya Скриптовые языки администрирования Windows 1 12-04-2013 21:21
CMD/BAT - [решено] Удаление по маске, кроме папки исключения. serjei Скриптовые языки администрирования Windows 27 18-02-2012 03:42




 
Переход