VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
-
pedrosoft
VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Приветствую!
Прошу подсказать, как можно на VBS выполнить обход каталогов, на предмет отсутствия файла file.lock либо его старости, такой структуры:
z:\ops\dir01\lock\
...
z:\ops\dirXX\lock\
Алгоритм такой:
1. Начинаем обход каталогов по указанной структуре (dir01\lock\ - dirXX\lock\)
2. Как только находим каталог без файла file.lock либо с файлом file.lock но датой его создания более 60 минут назад, останавливаем поиск
3. Запускаем из этого каталога bat-скрипт wshShell.Run "cmd.exe /c z:\ops\" & SearchDir & "\start.bat", 0, False (т.е. bat-файл будет лежать на один уровень выше, чем file.lock)
4. Если каталог без файла file.lock не найден, либо файл file.lock создан не позднее 60 минут назад - выводим сообщение WScript.Echo "Пульты заняты"
Буду рад любым советам. Спасибо!
Прошу подсказать, как можно на VBS выполнить обход каталогов, на предмет отсутствия файла file.lock либо его старости, такой структуры:
z:\ops\dir01\lock\
...
z:\ops\dirXX\lock\
Алгоритм такой:
1. Начинаем обход каталогов по указанной структуре (dir01\lock\ - dirXX\lock\)
2. Как только находим каталог без файла file.lock либо с файлом file.lock но датой его создания более 60 минут назад, останавливаем поиск
3. Запускаем из этого каталога bat-скрипт wshShell.Run "cmd.exe /c z:\ops\" & SearchDir & "\start.bat", 0, False (т.е. bat-файл будет лежать на один уровень выше, чем file.lock)
4. Если каталог без файла file.lock не найден, либо файл file.lock создан не позднее 60 минут назад - выводим сообщение WScript.Echo "Пульты заняты"
Буду рад любым советам. Спасибо!
-
Fors1k
Re: VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Код на скорую руку. Может и напутал чего, но вроде работает.
Код:
Код:
Код: Выделить всё
param(
$path = 'z:\ops',
$file = 'file.lock'
)cls
gci $path|foreach{$run={start "$args\start.bat" -WindowStyle h}
if($f = (gi "$($_.FullName)\lock\$file" -ea 0).LastWriteTime){
if(((Date) - $f).hours -ne 0){$a = 1;&$run $_.FullName}}
else{$a=1;&$run $_.FullName}};if($a-ne 1){"Все пульты заняты."}-
megaloman
Re: VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
VBS
[spoiler]Код: [/spoiler]
[spoiler]Код: [/spoiler]
Код: Выделить всё
If Not Pult("z:\ops", "dir", 2, "lock", "file.lock", "start.bat", 3600) Then WScript.Echo "Пульты заняты"
'-------------
Function Pult(DirPre, DirRoot, DirNlen, DirSuff, FileLock, FileBat, OldSec)
Pult = False
iii = 10000000
With CreateObject("Scripting.FileSystemObject")
For i = iii To iii + 10 ^ DirNlen - 1
SearchDir = DirRoot + Right(CStr(i), DirNlen)
dFile = DirPre + "\" + SearchDir + "\" + DirSuff
If .FolderExists(dFile) Then
iFile = dFile + "\" + FileLock
If .FileExists(iFile) Then
Pult = DateDiff("s", .GetFile(iFile).DateLastModified, Now) > OldSec
Else
Pult = True
End If
If Pult Then
' MsgBox "cmd.exe /c " + DirPre + "\" + SearchDir + "\" + FileBat
CreateObject("WScript.Shell").Run "cmd.exe /c """ + DirPre + "\" + SearchDir + "\" + FileBat + """, 0, False"
Exit For
End If
End If
Next
End With
End Function-
pedrosoft
Re: VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
pedrosoft, но у Вас же не Windows XP?
Цитата pedrosoft:
Буду рад любым советам.
Писать работающие алгоритмы.
Цитата pedrosoft:
Буду рад любым советам.
VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Писать работающие алгоритмы.
-
pedrosoft
Re: VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Дело в том, что уже есть более большой скрипт на VBS и я хотел дополнить его указанным выше функционалом.
-
pedrosoft
Re: VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
pedrosoft, что происходит после п.3?
Цитата Fors1k:
Microsoft больше не обновляет VBScript (с 2009 года)
В реальности — намного раньше. Но это не мешает ему продолжать работать.
Цитата Fors1k:
Microsoft больше не обновляет VBScript (с 2009 года)
VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
В реальности — намного раньше. Но это не мешает ему продолжать работать.
-
Iska
Re: VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Fors1k да знаю, но увы так вышло, основная часть кода уже написана на VBS.
Iska после пункта 3 происходит запуск bat-файла, это финальная часть работы VBS.
Iska после пункта 3 происходит запуск bat-файла, это финальная часть работы VBS.
-
pedrosoft
Re: VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Цитата Iska:
Но это не мешает ему продолжать работать.
Конечно не мешает, так как
Цитата pedrosoft:
увы так вышло, основная часть кода уже написана на VBS.
Появился повод переписать и остальную часть на PoSh. Еще и сам код сократится раз в 10
Но это не мешает ему продолжать работать.
VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Конечно не мешает, так как
Microsoft оставит его и в будущих выпусках Windows.
Цитата pedrosoft:
увы так вышло, основная часть кода уже написана на VBS.
VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Появился повод переписать и остальную часть на PoSh. Еще и сам код сократится раз в 10

-
pedrosoft
Re: VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Цитата Fors1k:
Появился повод переписать и остальную часть на PoSh. Еще и сам код сократится раз в 10
Согласен, но в моем случае придется потратить еще больше времени на переписывание основного кода, который итак был написал по крупицам из интернета)
Появился повод переписать и остальную часть на PoSh. Еще и сам код сократится раз в 10
VBS/WSH/JS - Поиск файла в каталогах и сравнение даты его создания
Согласен, но в моем случае придется потратить еще больше времени на переписывание основного кода, который итак был написал по крупицам из интернета)