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

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

chapun 23-12-2014 01:45 2447079

бат файл замены параметра в реестре с учетом текушего времени(в 16ричном значении)
 
Приветствую.
очень нужна ваша помощь :help:
задача такая-нужно менять параметр ключа
Код:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Installdate
со значением например "InstallDate"=dword:513ba2f5 на текущюю дату(в фомате в 16ричной системы),чтобы при запуске бат файла,менялась дата на текущую,а затем запускалась программа например allip.exe
как это будет выглядеть в виде бат файла,можно ли это реализовать(для автоматизации процесса)
винда хр
Спасибо за ответ.

Georgio 23-12-2014 16:46 2447314

Код:

@echo off
setlocal enableextensions

for /f %%i in ('
 mshta "vbscript:CreateObject("Scripting.FileSystemObject").GetStandardStream(1).Write(DateDiff("S","01/01/1970"+Chr(32)+"00:00:00",Now))&Close()"
') do cmd /c exit /b %%i
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallDate /t REG_DWORD /d 0x%=ExitCode% /f

start "" "allip.exe"

endlocal
exit /b 0


Foreigner 23-12-2014 17:33 2447333

chapun, В 2015-ом заменить 1388534400 (на 2014) на 1420070400 (юникс-тайм: кол-во сек с 01.01.1970 до 01.01.2015)
Код:

@echo off
setlocal

set /a "day=1%date:~0,2%-101"
set /a "month=1%date:~3,2%-100"

for /f "tokens=%month%" %%i in (

    "0 2678400 5097600 7776000 10368000 13046400 15638400 18316800 20995200 23587200 26265600 28857600"
   
    ) do set /a dec=%day%*86400+1388534400+%%i
   
:loop

for /f %%i in ('set /a dec%%16') do set "hex=%%i %hex%"
for /f %%i in ('set /a dec/16') do (

    if %%i geq 16 set "dec=%%i" && goto:loop
    set "hex=%%i %hex%"

)

set "hex=%hex:10=A%"
set "hex=%hex:11=B%"
set "hex=%hex:12=C%"
set "hex=%hex:13=D%"
set "hex=%hex:14=E%"
set "hex=%hex:15=F%"
set "hex=%hex: =%"

reg add "hklm\software\microsoft\windows nt\currentversion" /v "installdate" /t reg_dword /d 0x%hex% /f
start "" "allip.exe"


chapun 23-12-2014 20:15 2447397

Foreigner
то есть
Код:

) do set /a dec=%day%*86400+1388534400+%%i
должно выглядеть
Код:

) do set /a dec=%day%*86400+1420070400+%%i
и тогда код будет работать весь 2015 год
я правильно понимаю?
Georgio это у вас через vbs срипт организовано?

Да ребята-вам респект(командную строку все таки рано еще списывать со счетов),таки вещи можете делать:oszone:
Foreigner
Georgio
Спасибо за помощь.

Foreigner 23-12-2014 20:55 2447424

Цитата:

Цитата chapun
я правильно понимаю? »

Да, я не стал высчитывать, а тупо скопировал секунды из вывода строчки на PowerShell:
Код:

PS > (new-timespan '01.01.1970' '01.01.2014').totalseconds               
1388534400
                                                                   
 PS > (new-timespan '01.01.1970' '01.01.2015').totalseconds               
1420070400
                                                                   
 PS > 1..12 | % { (new-timespan '01.01.2014' "01.$($_).2014").totalseconds }
0                                                                           
2678400                                                                     
5097600                                                                     
7776000                                                                     
10368000                                                                     
13046400                                                                     
15638400                                                                     
18316800                                                                     
20995200                                                                     
23587200                                                                     
26265600                                                                     
28857600
                                                                     
 PS >



Время: 00:55.

Время: 00:55.
© OSzone.net 2001-