PDA

Показать полную графическую версию : [решено] bat- файл, который проверил бы время изменения файла


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

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

Iska
29-08-2019, 14:24
1. Не дублируйте (http://forum.oszone.net/post-2885873.html#post2885873) темы.
2. Создавайте темы в правильных разделах (http://forum.oszone.net/forum-102.html).

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

yurfed
29-08-2019, 14:46
servad, Два раза одну тему. Достаточно!!!

servad
29-08-2019, 16:58
С каким именем создать файл? Что делать, если файл с таким именем уже есть? »
Файл нужно создать с именем test.txt, если он имеется в каталоге D:\tirols\ то перезаписать

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

megaloman
29-08-2019, 18:03
@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

Iska
29-08-2019, 18:14
На 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

YuS_2
29-08-2019, 18:54
проверил бы время изменения файла по адресу 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}}"

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

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




© OSzone.net 2001-2012