Показать полную графическую версию : [решено] bat который при запуске системы проверяет дату и запускается в hh.dd.mm.yyyy
infoman1@vk
10-06-2014, 18:15
bat который при запуске системы проверяет дату и запускается в hh.dd.mm.yyyy
не нужно что бы он всегда был запущен, он будет стоять в автозагрузке и при старте системы смотрит на дату, и если уже 15.00 01.01.2015 или дальше то запускает файл 1.exe
а если дата пока не настала то закрывается что бы не грузить систему
infoman1@vk
12-06-2014, 00:03
ну что никто?
WSH:
Option Explicit
Dim dtConditionDate
Dim strPath
dtConditionDate = CDate("01.01.2015 15:00")
strPath = "1.exe"
If Now() >= dtConditionDate Then
If WScript.CreateObject("Scripting.FileSystemObject").FileExists(strPath) Then
WScript.CreateObject("WScript.Shell").Run """" & strPath & """"
Else
WScript.Echo "File [" & strPath & "] not found."
WScript.Quit 1
End If
End If
WScript.Quit 0
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-5 delims=,.\ " %%a in ("%time::=% %date%") do (
set $date=.%%c.%%d.%%e
if "!$date:.0=.!"==".1.1.2015" (
for /f "tokens=* delims=0" %%f in ("%%a%%b") do (
if %%f geq 15000000 (
start "" "1.exe"
)
)
)
)
endlocal
exit /b
infoman1@vk
12-06-2014, 14:31
вот сделал с етих кодов BAT дату сегоднишнию поставил, с папки виндовса копировал блокнот в отдельную папку, переименовал его на 1.exe, и ни один не работает
114209
114210
infoman1@vk
12-06-2014, 14:50
блокнот должен был запустится. дата там та которая уже прошла
infoman1@vk,
1) надо было ставить не ".12.06.2014", а ".12.6.2014" (т. е. без начальных нулей);
2) "15000000" -- это время "15:00:00,00", которое также нужно было заменить на соответствующее моменту без начальных нулей (за исключением времени "0:00:00,00", которое заменяется на один нуль), например:
0:00:00,00 -- 0
0:01:00,00 -- 10000
0:12:59,59 -- 125959
9:35:30,00 -- 9353000
15:30:00,00 -- 15300000
.
infoman1@vk
19-06-2014, 20:11
разобрался работает. но есть какая то ошибка
когда пишу
10.6.2014 то не работает
а когда
19.6.2014 то работает.
но 10.6.2014 дата которая уже прошла.
как это исправить?
White Rabbit
20-06-2014, 08:54
(т. е. без начальных нулей »
Сорри, что вклиниваюсь. А как быть, когда нужны начальные нули? Дело в том что у меня батник формирует название папки по дате и времени. Когда на первом месте не ноль всё ОК, но когда ноль... Он его опускает. Правда касается это только времени, по дате вроде бы пока всё ОК. Что можно сделать?
@echo off
set vtime=%time:~0,-3%
set т=%date:~-4%%date:~2,-4%%date:~0,-8%_%vtime::=.%
md "%n%"
Однако же небогато советов...
White Rabbit, вот так:
@echo off
set vtime=%time:~0,-3%
set vtime=%vtime: =0%
set n=%date:~-4%%date:~2,-4%%date:~0,-8%_%vtime::=.%
md "%n%"
.
как это исправить? »
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-5 delims=,.\ " %%a in ("%time::=% %date%") do (
set d=0%%c
set m=0%%d
if %%e!m:~-2!!d:~-2! geq 20150101 (
for /f "tokens=* delims=0" %%f in ("%%a%%b") do (
if %%f geq 15000000 (
start "" "1.exe"
)
)
)
)
endlocal
exit /b
infoman1@vk, обратите впимание: теперь дата подставляется с соответствующими нулями, а время, как и было, без начальных нулей, за исключением одного нуля в случае "0:00:00,00".
При использовании "wmic.exe" весь код можно записать в одну строку: @for /f "tokens=2 delims==+" %%i in ('wmic OS get LocalDateTime /value') do @if %%i geq 20150101150000.000000 start "" "1.exe".
infoman1@vk
07-07-2014, 02:28
Код:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-5 delims=,.\ " %%a in ("%time::=% %date%") do (
set d=0%%c
set m=0%%d
if %%e!m:~-2!!d:~-2! geq 20150101 (
for /f "tokens=* delims=0" %%f in ("%%a%%b") do (
if %%f geq 15000000 (
start "" "1.exe"
)
)
)
)
endlocal
exit /b »
дату ставлю 20140101
время:
15000000 - не запускает 1.exe
05000000 - не запускает 1.exe
08000000 - запускает 1.exe
09000000 - запускает 1.exe
10000000 - не запускает 1.exe
даты не меняю только время, как вы видите дата давно прошла. а файл то запускается то нет
WSH мне нравится всё больше и больше :lol:.
infoman1@vk
07-07-2014, 11:25
При использовании "wmic.exe" весь код можно записать в одну строку:
Код:
@for /f "tokens=2 delims==+" %%i in ('wmic OS get LocalDateTime /value') do @if %%i geq 20150101150000.000000 start "" "1.exe"
. »
будет ли скрипт работать на всех версиях виндовса?
у меня хр скрипт работает. а на других версиях ?
будет ли скрипт работать на всех версиях виндовса? »
Только от Windows XP Professional и выше. На Windows XP Home Edition и предыдущих версиях Windows — «wmic.exe» отсутствует.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.