Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/34: Рейтинг темы: голосов - 34, средняя оценка - 4.53
1 / 1 / 0
Регистрация: 09.04.2014
Сообщений: 6
1

Перемещение файлов старше 30 минут

09.04.2014, 14:18. Показов 6807. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Необходим батник, который проверяет файлы(их всегда несколько) в определенной папке(папка 1) и если файл/файлы которые находятся в папке больше получаса(смотрим на дату модификации файла и текущее время) то перемещаем их в другую папку(папка 2).

Вот что получилось:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
echo off
                 
cd /d "Папка 1"
Set outdir= "Папка 2"
 
setlocal enabledelayedexpansion               
 
rem реальное время
Set Time_r=%TIME%
Set tr=!Time_r:~0,5!
 
Set Real_hh=!tr:~0,2!
Set Real_mm=!tr:~3,2!
 
if Real_hh lss 10 set Real_hh=!tr:~0,1!
if Real_mm lss 10 set Real_mm=!tr:~4,1!
 
 
for /f "delims=" %%z in ('dir /O-D *.* /b') do ( 
 
Set lm=%%~tz
rem Echo lm=!lm!
 
Set File_hh=!lm:~11,2!
Set File_mm=!lm:~14,2!
 
if !File_hh! lss 10 set File_hh=!lm:~12,1!
if !File_mm! lss 10 set File_mm=!lm:~15,1!
 
Set /a Diff = "60*(Real_hh-File_hh)+Real_mm-File_mm"
 
:: не работает
REM IF /i !Diff! GEQ "30" ( echo %%~tz %%z !File_hh!-!File_mm!--%Real_hh%-%Real_mm% D:!Diff! ) ELSE (goto end)
 
:: не работает
IF !Diff! GEQ 30 ( echo %%~tz %%z !File_hh!-!File_mm!--%Real_hh%-%Real_mm% D:!Diff! ) ELSE (goto end)
 
)
 
:end
pause
И в первом и во втором условии IF получает Diff первого файла, хотя если задать условие при котором отбираются все фалы, то тут echo %%~tz %%z !File_hh!-!File_mm!--%Real_hh%-%Real_mm% D:!Diff! ) ELSE (goto end) выводится !Diff! для каждого файла.

Что я делаю не так?

Заранее благодарен.

P.S. Программу можно оптимизировать, но это потом
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.04.2014, 14:18
Ответы с готовыми решениями:

Перемещение файлов старше Х дней с сохранением структуры каталога
Доброго дня, уважаемые гуру :) Есть задача переместить старые файлы, сохранив структуру папок....

Удаление файлов старше 10-ти дней
Приветствую Вас пользователи! Помогите с решением следующей задачи. Настроено ежедневное резервное...

Удаление файлов старше 3-х дней
Есть папка, в которую каждый день акронис складывает новые образы. Хочу сделать так, чтобы батник...

Архивация лог-файлов старше трёх дней
Необходимо ежедневно архивировать лог файлы с датой ранее 3 дней от текущей даты в ту же папку, где...

7
1780 / 762 / 130
Регистрация: 09.04.2011
Сообщений: 1,325
09.04.2014, 14:26 2
apostol_peter, добавьте второй строкой SetLocal enabledelayedexpansion
0
 Аватар для ComSpec
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2014, 14:35 3
Bash
1
IF !Diff! GEQ 30
0
1 / 1 / 0
Регистрация: 09.04.2014
Сообщений: 6
09.04.2014, 14:47  [ТС] 4
SetLocal enabledelayedexpansion второй строкой не помогло.

Добавлено через 3 минуты
ComSpec, А что именно тут не правильно? И если можно подскажите в каком варианте будет работать.
0
 Аватар для ComSpec
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2014, 14:52 5
Bash
1
IF !Diff! GEQ 30
Без кавычек!
0
1 / 1 / 0
Регистрация: 09.04.2014
Сообщений: 6
09.04.2014, 15:02  [ТС] 6
ComSpec, С кавычками то же не работает.
0
 Аватар для ComSpec
3461 / 1999 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2014, 15:13 7
Цитата Сообщение от ComSpec Посмотреть сообщение
Без кавычек!
Цитата Сообщение от apostol_peter Посмотреть сообщение
С кавычками то же не работает.
"...или лыжи не едут".
0
1 / 1 / 0
Регистрация: 09.04.2014
Сообщений: 6
10.04.2014, 12:45  [ТС] 8
Вот это лишнее ELSE (goto end)

Добавлено через 12 минут
Только сейчас усмотрел. Чуть истерика не случилась

Добавлено через 21 час 16 минут
Рабочий вариант. если кому интересно.

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Echo Off
SetLocal enabledelayedexpansion
                 
SET WorkDir=D:\Project\chk_time
SET OutDir=%WorkDir%\1\
SET LogFile=%WorkDir%\LogFile.log
 
CD /D %WorkDir%
 
REM реальное время
SET Time_r=%TIME%
SET tr=!Time_r:~0,5!
 
SET Real_hh=!tr:~0,2!
SET Real_mm=!tr:~3,2!
 
IF Real_hh lss 10 SET Real_hh=!tr:~0,1!
IF Real_mm lss 10 SET Real_mm=!tr:~4,1!
 
Echo -------------------------------------------------- START - %TIME% ------------------------------------------------ >> %LogFile%
 
FOR /F "delims=" %%z IN ('dir /O-D *.ED /b') do ( 
 
SET lm=%%~tz
REM Echo lm=!lm!
 
SET File_hh=!lm:~11,2!
SET File_mm=!lm:~14,2!
 
IF !File_hh! lss 10 SET File_hh=!lm:~12,1!
IF !File_mm! lss 10 SET File_mm=!lm:~15,1!
 
SET /A Diff = "60*(Real_hh-File_hh)+Real_mm-File_mm"
 
IF !Diff! GEQ 30 (
Echo Файл:%%z Дата/время файла:%%~tz - Текущее время:%Real_hh%:%Real_mm% Файл завис !Diff! минут назад.
Echo Файл:%%z Дата/время файла:%%~tz - Текущее время:%Real_hh%:%Real_mm% Файл завис !Diff! минут назад. >> %LogFile%
COPY %%z %OutDir% /Y >> %LogFile%
)
 
REM --- Для тестирования работоспособности ---
REM IF !Diff! GEQ 30 ( echo %%~tz %%z !File_hh!-!File_mm!--%Real_hh%-%Real_mm% D:!Diff! )
)
Echo -------------------------------------------------- END - %TIME% ------------------------------------------------ >> %LogFile%
REM Pause
REM MOVE %%z %OutDir%
1
10.04.2014, 12:45
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.04.2014, 12:45
Помогаю со студенческими работами здесь

Архивация файлов и удаление архивов старше семи дней
Ребята помогите сделать скрипт, плз. Суть такая - есть каталог, который сканируется на предмет...

Создание папок с именами заданных файлов и перемещение этих файлов в созданные папки
Подскажите пожалуйста как по названиям файлов txt создать папки и положить в каждую из папок файл с...

Перемещение файлов в каталоги, создаваемые в соответствии с именами или частями имён этих файлов
Добрый день. Прошу помочь. Задача: в текущем каталоге имеется N-ое кол-во файлов с определенными...

Автосортировка файлов - перемещение файлов в подпапки по 4 штуки
Уважаемые программисты, нужна Ваша помощь! Необходимо с помощью bat-файла автоматизировать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Информация и информационные процессы
hw_wired 28.01.2025
Понятие информации и ее виды В современном мире информация является одним из фундаментальных понятий, пронизывающих все сферы человеческой деятельности. Под информацией понимают любые сведения об. . .
Алгоритмика
hw_wired 28.01.2025
Введение: Основы алгоритмики и её роль в информатике В современном мире программирование и алгоритмическое мышление стали неотъемлемой частью образования и профессиональной деятельности. . . .
Информационное моделирование
hw_wired 28.01.2025
Введение в информационное моделирование В современном мире информационное моделирование стало неотъемлемой частью научной, образовательной и профессиональной деятельности. Это мощный инструмент. . .
Объекты и их имена
hw_wired 28.01.2025
Введение: Основы объектного подхода и их роль в информатике В современном мире информационных технологий объектный подход стал фундаментальным принципом организации и обработки информации. Этот. . .
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru