Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] bat- файл, который проверил бы время изменения файла (http://forum.oszone.net/showthread.php?t=341989)

servad 29-08-2019 14:07 2885874

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

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

Iska 29-08-2019 14:24 2885876

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

Цитата:

Цитата servad
то создать файл в каталоге D:\tirols\ »

С каким именем создать файл? Что делать, если файл с таким именем уже есть?

yurfed 29-08-2019 14:46 2885880

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

servad 29-08-2019 16:58 2885902

Цитата:

Цитата Iska
С каким именем создать файл? Что делать, если файл с таким именем уже есть? »

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

Цитата:

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

Прошу прощения, просто очень нуждаюсь в помощи

megaloman 29-08-2019 18:03 2885910

Код:

@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 2885913

На 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 2885922

Цитата:

Цитата 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}}"


servad 30-08-2019 12:01 2886003

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

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


Время: 19:30.

Время: 19:30.
© OSzone.net 2001-