Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
RaDM
5 / 7 / 1
Регистрация: 14.12.2015
Сообщений: 140
1

Удалить все старые файлы из двух папок, оставив только самый новый файл

21.07.2016, 07:37. Просмотров 261. Ответов 2
Метки нет (Все метки)

Имеются файлы вида хх000000.txt
где
хх - буквы
000000 - числа (порядковый номер)

В папках (Р1 и Р2) удалить все старые файлы. Если в Р2 находится самый новый файл, то копируем его в Р1.
Короче
Из двух источников должен остаться самый новай файлик в папке Р1. Р2 иногда может отсутствовать.

Для каждой папки выглядит так:
Windows Batch file
1
for /f "usebackq skip=1 tokens=*" %%A IN (`dir *.txt /b /a-d /o-n`) DO del %%~A
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2016, 07:37
Ответы с готовыми решениями:

Удалить из заданной директории все файлы, только если в ней существует указанный файл
Удалить из заданной директории все файлы, только если в этой директории...

Удалять файлы в папке, оставляя один самый новый файл
Здравствуйте. Помогите сделать следующее: Есть необходимость удалять файлы в...

Удалить все папки и файлы кроме определенных 2 папок и 2 файлов
Нужна помощь профессионалов ! Борюсь со скриптом bat Надо удалить все папки...

Получить несколько папок в переменные и самый новый файл в папке
Привет всем. Снова обратился за вашей помощью. :) 1. Вопрос. Есть папка...

Удалить из массива все дубликаты элементов, оставив только первое вхождение
Дан целочисленный массив размера N. Удалитьиз массива все дубликаты элементов,...

2
RaDM
5 / 7 / 1
Регистрация: 14.12.2015
Сообщений: 140
22.07.2016, 15:50  [ТС] 2
Сори за беспокойство. Перегрелся на солнце. Такой вариант для меня годится:
(Сам скрипт лежит в папке Р1)
Windows Batch file
1
2
3
4
dir P2\*.txt /a-d >nul
if %errorlevel%==0 (copy P2\*.txt P1\
@for /f "usebackq skip=1 tokens=*" %%A IN (`dir *.txt /b /a-d /o-n`) DO del %%~A
)
0
alpap
1586 / 1237 / 403
Регистрация: 26.04.2015
Сообщений: 4,343
27.07.2016, 10:27 3
Можно было бы и так:
Windows Batch file
1
2
3
4
@echo off
xcopy /d "p2" "p1"
for /f "delims=" %%a in ('dir/a-d/b/o-d/tc "p1"^|more +1') do del/q "p1\%%a" "p2\*"
exit
В папке "p1" всегда будут самые свежие файлы и удаляем, кроме последнего все из нее и все из "p2".
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2016, 10:27

Удалить из строки все повторяющиеся буквы, оставив только их первые вхождения
2.Даны строки, содержащие латинские буквы. Удалить из строки все повторяю*...

Удалить из очереди все повторяющиеся слова, оставив только их первые вхождения
Создать очередь, содержащую слова. Удалить из очереди все повторяющиеся слова,...

Массив: Удалить все повторяющиеся элементы, оставив в массиве только один.
Помогите, народ! Срочно нужна программа. Собственно задание: В целочисленном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru