Plik *.BAT uruchomienie programu z inna data systemowa


(imex) #1

Cześć jak w temacie

Potrzebuje zrobić plik program.bat z nastepującą funkcją
zmienia na poczatku date systemową
moze odczekuje z 1 sek dla potwierdzenia
nastepnie uruchamia program plik.exe
moze odczekuje chwilke
zmienia date na obecną - olbo na poczatku ja odczytuje do pluku chwilowej pamiecie a nastepnie ja tu wstawia i zapisuje date w systemie

Dlaczego taka kombinacja. Mam program który uruchamia ste z data wcześniejsza - potem można z nim robić co sie chce i wstawiac obecna date ale do uruchomienia jest potrzebna inna wczesniejsza z 1 listopada 2017r

Czy jakaś pomo od was popłynie - serdecznie dziekuje i pozdrawiam Grzesiek


(hiropter) #2

Nie lepiej dać zarobić autorowi programu i wykupić licencję na kolejny rok, niż w taki dziwny sposób obchodzić zabezpieczenia programu?


(krystian3w) #3

W sumie przecież są programy co cofają datę, na pewno działają lepiej niż plik bat.

https://www.nirsoft.net/utils/run_as_date.html - jednak nie działa na bardziej zaawansowane programy z licencją trial / shareware / opisane sytuacje przez autorów.

Important Notice !!

I get many email messages that say something like “I tried to extend the trial period of xyz software with RunAsDate and it didn’t work”. Running a software with different date/time can be used for many legitimate purposes and for these purposes RunAsDate was created. I have never said implicitly or explicitly that RunAsDate can be used for extending the trial period of a software. For some shareware programs, RunAsDate might really work, but many shareware creators are smart enough to detect that the date/time was modified and when they detect the time change, they end the trial period immediately.
Please don’t bother yourself to send me a question about extending the trial period of a software, because these kind of messages are simply deleted without answering.


(bachus) #4

Nie mam jak potestować, może próbuj od tej strony:

rem zapamietanie obecnej daty
SET AKTUALNA=%date%

rem zmiana daty na wybrana
ECHO 01/01/2000 | DATE

rem sleep na kilka sekund
ping 127.0.0.1 -n 10 > nul

echo powrot do starej daty
echo %AKTUALNA% | DATE

Oczywiście to by trzeba było przemyśleć, np. żeby skrypt nie zaczynał się przed północą i nie kończył po północy itd. :wink:


(krystian3w) #5

Na pewno będzie problem z formatem jak ma dziwne ustawienia regionalne, przy powiedzmy domyślnych data powinna być zapisana 2000-01-01.

Chyba można obejść przechwytując jako 3 zmienne i potem sprawdzając czy ustawienia regionalne mają wpływ na działanie składni w polceniu date.

Działać, działa - zmienia się data w całym systemie jak mamy uprawnienia do zmiany daty.


(bachus) #6

Ja tylko dodam, że kolega pytał o BAT. W PowerShell to jedna komenda wystarczy użyć metody AddDays, np. cofnąć się o ~2 lata:
Set-Date (Get-Date).AddDays(-700)

a potem powrót :
Set-Date (Get-Date).AddDays(700)


(imex) #7

wiec data dziala poprawnie i jest OK

mam problem z odpaleniem programu

program jest w
c:\Program Files\katalof1\katalog2\program.exe


(krystian3w) #8

zapisz jako:

"C:\Program Files\katalof1\katalog2\program.exe"

i powinno uruchomić, polecenie start może powodować problemy więc bym go nie używał. Chyba że użyjesz zgodnie z jego składnią i przetestujesz.


(imex) #9

działa wszystko jak trzeba

pozostaje jeszcze automatyczne zamkniecie okienka CMD które pozostaje otwarte


(imex) #10

a jednak nie dziala poprawnie

odczytuje date - tu OK
uruchamia program i tu jest OK

ale zatrzymuje działanie dalszych procedur czyli zapisa daty i zamkniecie okienka cmd komenda EXIT


(krystian3w) #11

Powinno stopować aż do zamknięcia uruchominonego programu, potem by się data cofnęła do poprawnej i skrypt zamknął.

Jak dla mnie to już troszkę wyzwanie by przeszedł skrypt dalej.

https://stackoverflow.com/questions/324539/how-can-i-run-a-program-from-a-batch-file-without-leaving-the-console-open-after - możliwe że to nie to co chcesz osiągnąć.


(imex) #12

to rozwiązuje problem - czyli dodatkowy cudzysłów na początku

przykład z którego sie posiliłem
Start “” “C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe”


(krystian3w) #13

U mnie też przechodzi :blush:

@echo off
cls
rem zapamietanie obecnej daty
SET AKTUALNA=%date%

rem zmiana daty na wybrana
ECHO 2000-01-01 | DATE

Start "" "mspaint.exe"

rem sleep na kilka sekund
ping 127.0.0.1 -n 10 > nul

echo powrot do starej daty
echo %AKTUALNA% | DATE

Przechodzi, a paint otwarty i data po chwili aktualna.