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

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

Ответить
Настройки темы
CMD/BAT - Поиск и переименование файлов с помощью BATника

Новый участник


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

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


Помогите написать!
Нужен батник, который бы сканировал определенный путь (который пропишем) на изминенные СЕГОДНЯ (текущая дата) файлы, смотрел на имя файла, и на дату изменения, если файл имеет имя тест.xlsx и изменен сегодняшней датой, то переименовывал на 210831 тест.xlsx (текущей датой), если есть файл с именем 210826 тест2.xlsx, который менялся 5 дней назад, и сегодня повторно изменился, то менял первые 6 символов на текущую дату изменения, если маски в виде 210826 нет вообще в имени файла то переименовывал в текущую дату изменения. Как я вижу, +-

@echo off
set thePATH=C:\temp
for /F "tokens=1-4 usebackq delims=. " %%1 in (`date /t`) do set mydate=%4%%3%%2%%1
ren test.xlsx %mydate%test.xlsx

Еще думаю нужно копать сюда -
Отслеживать изменения в файлах можно с помощью аттрибута "архивный".
Этот аттрибут выставляется автоматически ОС при любом изменении файла.
Вывести список файлов, у которых аттрибут "архивный" с помощью dir /a:a
Получить дату/время изменения файла можно с помощью модификаторов переменной цикла. Возможно for /
После переименования файла нужно снимать аттрибут архивный - это будет признак того, что файл уже обработан и в следующий раз он в обработку не попадет (если не будет модифицирован). Сделать это можно командой возможно attrib /?

Помогите дописать))

Отправлено: 15:36, 31-08-2021

 

Новый участник


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

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


Изображения
Тип файла: jpg Screenshot_11.jpg
(88.0 Kb, 4 просмотров)
Тип файла: jpg Screenshot_10.jpg
(26.5 Kb, 2 просмотров)

megaloman, что то не видит совсем файлы (

Отправлено: 08:37, 16-09-2021 | #41



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

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


Ветеран


Contributor


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

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


ovrtke, я предполагал такую структуру:
Код: Выделить весь код
Папка
     Папка 1
          файлы или есть или нет
          Папка 1.1
                  файлы или есть или нет
                   Папка 1.1.1
                   .....................  
      Папка 2
          файлы или есть или нет
          Папка 2.1
                  файлы или есть или нет
                   Папка 2.1.1
                    ......
Переименование корневой папки и обработка файлов в ней не предполагалось. В корневой Папке должны быть подпапки.

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


Отправлено: 08:59, 16-09-2021 | #42


Новый участник


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

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


Папка - не трогаем
Папка 1 - переименовываем
файлы или есть или нет
Папка 1.1
файлы или есть или нет
Папка 1.1.1
.....................
примерно так сейчас ?

Последний раз редактировалось ovrtke, 16-09-2021 в 09:18.


Отправлено: 09:09, 16-09-2021 | #43


Ветеран


Contributor


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

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


ovrtke,
Цитата ovrtke:
а если так ? »
Можно, но нельзя . Я не знаю, зачем Вам скрипт. Но у Вас имя корневой папки прописано в батнике. И, если оно изменится после обработки, то при следующем запуске батника она найдена не будет, или ручками придётся ее перепрописать в коде - полный угар.

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

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

Отправлено: 09:31, 16-09-2021 | #44


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

fascinating rhythm


Moderator


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

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


Цитата megaloman:
Я не знаю, зачем Вам скрипт. »
Автор темы, по всей видимости, тоже.

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


Отправлено: 09:56, 16-09-2021 | #45


Новый участник


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

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


megaloman, спасибо, чуток допилил, все работает, все огонь!
DJ Mogarych, спасибо за уточнение, но нет, знаю) просто когда есть бета версия одного файла всегда найдутся те которые хотят чучуть дороботать и улучшить, и изменить вводные данные которые были изначально. Но все получилось, еще раз огромаднейшее комраду megaloman за содействие и помощь в оказании написания сего батника

Отправлено: 10:16, 16-09-2021 | #46


Ветеран


Contributor


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

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


ovrtke,
Шолом-Алейхем: "Если нельзя, но очень хочется, то можно"
Код: Выделить весь код
@Echo Off
cls
>nul Chcp 1251
	Set "BoxIn=Z:\Users\borisov.a\Documents\Bitrix24\КМ НЗЧ"
	                                                                                    
	Set Mask="*.xlsx" "*.doc" "*.txt"
	Set "DateMask=^[2-9][0-9][0-1][0-9][0-3][0-9] .*"

	Pushd "%BoxIn%" ||(Echo Folder "%BoxIn%" not found &Pause &Exit /B 1) 

	Echo +++ Processing files Mask=%Mask% Folder="%BoxIn%" 

	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "MyDate=%%d" &Call Set "MyDate=%%MyDate:~2,6%% "

	Set /A Ntotal=0
	For /F "usebackq delims=" %%d In (`2^>nul Dir "%BoxIn%\*.*" /B /A:D /S ^|Sort /R`) Do (
		Set /A Na=0
		Call :ReFiles "%%d" "%Mask%" "Ni"
	)
	Call :ReFiles "%BoxIn%" "%Mask%" "Ni"
	Popd

	Echo === Changed %NTotal% files today. Folder="%BoxIn%" Mask=%Mask%
pause
Exit /B 0

:ReFiles
	Set /A N=0
	Pushd "%~1" ||Exit /B 0
		For /F "usebackq delims=" %%f In (`2^>nul Dir %~2 /B /A:-D /O:-D /T:W`) Do (
			For /F "delims= " %%d In ("%%~tf") Do (
				If "%Date%"=="%%d" (
					Set "Name=%%f"
					Call Echo %%Name%%| >nul 2>&1 FindStr /I /X /R /C:"%DateMask%" &&Call Set "Name=%%Name:~7%%"
					>nul Call ReName "%~1\%%f" "%MyDate%%%Name%%"
					Call Set /A N+=1
					Call Echo %%N%%	"%~1\%%f"	"--->""%MyDate%%%Name%%"
				) Else (GoTo :Continue)
			) 
		)
	:Continue
	Set /A %~3=%N%
	Set /A NTotal+=%N%
	Popd
	If Exist "%~1\%MyDate%*.*" Call :Redir %1
Exit /B 0

:ReDir
	Set "Name=%~nx1"
	Call Echo %%Name%%| >nul 2>&1 FindStr /I /X /R /C:"%DateMask%" &&Call Set "Name=%%Name:~7%%"
	>nul Call ReName %1 "%MyDate%%%Name%%" &&Call Echo ===	"%~nx1"	"--->""%MyDate%%%Name%%" ||Echo ???	%1
Exit /B 0
Файлы в корневой папке переименовывываются, а сама папка нет. Добавил всего одну строку. Элементарно сделать , чтобы и папка переименовывалась, но это уже обсудили.

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


Последний раз редактировалось megaloman, 16-09-2021 в 11:37.


Отправлено: 11:08, 16-09-2021 | #47


Новый участник


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

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


Шолом-Алейхем: "Если нельзя, но очень хочется, то можно"

Круто! Спасибо

Отправлено: 12:20, 16-09-2021 | #48



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Копирование папки с файлами с помощью batника Stgean Скриптовые языки администрирования Windows 6 19-04-2019 12:00
CMD/BAT - Поиск и копирование файлов с помощью пакетного файла. Svtln Скриптовые языки администрирования Windows 4 09-04-2017 18:03
CMD/BAT - Архивирование, переименование и перемещение файлов с помощью BAT-файла kirillius Скриптовые языки администрирования Windows 7 13-05-2016 12:57
CMD/BAT - Поиск, переименование и создание Дима_Качуров@vk Скриптовые языки администрирования Windows 2 25-07-2012 15:27
[решено] поиск и переименование файлов exo Хочу все знать 5 26-08-2011 17:05




 
Переход