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

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

Ответить
Настройки темы
CMD/BAT - [решено] bat- файл, который проверил бы время изменения файла

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


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

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


Добрый день. Требуется написать bat- файл, который проверил бы время изменения файла по адресу D:\verid\derat_env.dat, если последний раз он был изменен больше часа назад, то создать файл в каталоге D:\tirols\

Благодарю за помощь!!!

Отправлено: 14:07, 29-08-2019

 

Ветеран


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

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


1. Не дублируйте темы.
2. Создавайте темы в правильных разделах.

Цитата servad:
то создать файл в каталоге D:\tirols\ »
С каким именем создать файл? Что делать, если файл с таким именем уже есть?

Отправлено: 14:24, 29-08-2019 | #2



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

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


Аватара для yurfed

Ветеран


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

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


servad, Два раза одну тему. Достаточно!!!

-------
Хочу ли я - Могу ли я - Говно ли я - Магнолия


Отправлено: 14:46, 29-08-2019 | #3


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


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

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


Цитата Iska:
С каким именем создать файл? Что делать, если файл с таким именем уже есть? »
Файл нужно создать с именем test.txt, если он имеется в каталоге D:\tirols\ то перезаписать

Цитата yurfed:
servad, Два раза одну тему. Достаточно!!! »
Прошу прощения, просто очень нуждаюсь в помощи

Отправлено: 16:58, 29-08-2019 | #4


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off
cls
	Set "FileIn=D:\verid\derat_env.dat"
	Set "FileOut=D:\tirols\test.txt"
	Set /A Min=60

	If Not Exist "%FileIn%" (Echo !!! File "%FileIn%" not found &Pause &Exit /B 2)
	
	For /f "tokens=1,2 delims=,." %%a in ('2^>nul wmic datafile where "name='%FileIn:\=\\%'" get 'Last Modified' /format:csv') Do (
		If /I "%%a"=="%ComputerName%" Set "DateTimeF=%%b"
	)
	FOR /F "tokens=2 delims==." %%d in ('WMIC OS GET LOCALDATETIME /VALUE') DO SET "DateTime=%%d"

	Set /A Delta=%DateTime:~2,10%-%DateTimeF:~2,10%
	If %Delta% GTR %Min% >"%FileOut%" Echo "%FileOut%" Created %DateTime% "%FileIn%" Last Modified %DateTimeF% Delta=%Delta%min
Exit /B

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

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

Отправлено: 18:03, 29-08-2019 | #5


Ветеран


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

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


На WSH:
Скрытый текст
Код: Выделить весь код
Option Explicit

Dim strSourceFile
Dim strDestPath
Dim strDestFile


strSourceFile = "D:\verid\derat_env.dat"
strDestPath   = "D:\tirols"
strDestFile   = "test.txt"

With WScript.CreateObject("Scripting.FileSystemObject")
	If .FileExists(strSourceFile) Then
		If .FolderExists(strDestPath) Then
			If DateDiff("h", .GetFile(strSourceFile).DateLastModified, Now()) > 0 Then
				.CreateTextFile(.BuildPath(strDestPath, strDestFile), True).Close
			End If
		Else
			WScript.Echo "Can't find destination folder [" & strDestPath & "]."
			WScript.Quit 2
		End If
	Else
		WScript.Echo "Can't find source file [" & strSourceFile & "]."
		WScript.Quit 1
	End If
End With

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

Отправлено: 18:14, 29-08-2019 | #6


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата servad:
проверил бы время изменения файла по адресу D:\verid\derat_env.dat, если последний раз он был изменен больше часа назад, то создать файл в каталоге D:\tirols\ »
CMD + Powershell
Код: Выделить весь код
@echo off
set "file=D:\verid\derat_env.dat"
set "dst=D:\tirols"
set "name=test.txt"

powershell -ex bypass -c "&{if ((gi -lit '%file%').lastwritetime -lt (get-date).addhours(-1)){ni -p '%dst%' -n '%name%' -i 'file' -f}}"

-------
scio me nihil scire. Ѫ

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

Отправлено: 18:54, 29-08-2019 | #7


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


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

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


Выражаю огромную благодарность в решении моего вопроса YuS_2 , Iska и megaloman !!!
Спасибо Друзья, очень помогли!

YuS_2, Iska, megaloman,
Выражаю огромную благодарность в решении моего вопроса YuS_2 , Iska и megaloman !!!
Спасибо Друзья, очень помогли!

Отправлено: 12:01, 30-08-2019 | #8



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] пример BAT-файла, который будет вносить коррективы в .cfg файл Ka3hak Скриптовые языки администрирования Windows 25 14-06-2018 05:15
CMD/BAT - bat файл, который создаст 2 bat файла mazahaka2000@vk Скриптовые языки администрирования Windows 1 17-06-2015 22:07
CMD/BAT - bat файл который бы запускался на рабочей станции и копировал измененные файлы dramkos Скриптовые языки администрирования Windows 1 01-08-2014 05:53
CMD/BAT - BAT-файл изменения IP адреса файла приглашения удаленного помощника grefeos Скриптовые языки администрирования Windows 0 11-04-2013 16:50
CMD/BAT - Нужен bat файл который бы перемещал галочку с только для меня для любого пользователя ruslan777777 Скриптовые языки администрирования Windows 0 12-08-2011 09:15




 
Переход