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

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

max_max_08 05-06-2009 20:49 1136096

нужно что-бы батник считал сколько раз его запускали
 
У меня тоже вопрос, нужно что-бы батник считал сколько раз его запускали и при достижении определенного значения перешел по определенной метке.

Maza Faka 06-06-2009 11:52 1136514

max_max_08
Придётся записывать счётчик в файл или в реестр, по другому никак:
Код:

@Echo Off

Set Count=0

If Exist "%WINDIR%\~tmp_count.txt" (
  For /F %%A In ('Type "%WINDIR%\~tmp_count.txt"') Do Set /A Count=%%A+1
)

If "%Count%"=="10" (
  Echo Count limit
  GoTo :EOF
)

Echo ^%Count%>"%WINDIR%\~tmp_count.txt"

::Здесь ваш код

В приведённом примере код будет выполняться 10 раз.

max_max_08 07-06-2009 12:45 1137308

А как сделать счет по дням после первого запуска, и если можно вариант с записью в реестр.

Maza Faka 07-06-2009 16:08 1137457

max_max_08
Цитата:

Цитата max_max_08
сделать счет по дням после первого запуска »

Можно "извратиться" так:
Код:

@Echo Off

Set DayLimit=10

Echo On Error Resume Next>~tmp.vbs
Echo Set WshShell = WScript.CreateObject("WScript.Shell")>>~tmp.vbs
Echo nDate = WshShell.RegRead("HKLM\Software\MyProgram\")>>~tmp.vbs
Echo If nDate = "" Then>>~tmp.vbs
Echo nDate = Now>>~tmp.vbs
Echo WshShell.RegWrite "HKLM\Software\MyProgram\", nDate>>~tmp.vbs
Echo End If>>~tmp.vbs
Echo If DateDiff("d", nDate, Now) ^> %DayLimit% Then WScript.Echo "Limit">>~tmp.vbs

For /F %%A In ('CScript ~tmp.vbs //Nologo') Do If /I "%%A"=="Limit" GoTo :EOF

Del /F /Q ~tmp.vbs>Nul

:)

max_max_08 07-06-2009 18:10 1137542

Ого, спасибо, еще один вопрос, после установки моей программы в реестре появляется ветка с информацией о том куда она была установлена, нужно чтобы батник скопировал в эту папку файл install.exe и запустил его.

Maza Faka 08-06-2009 09:55 1138021

max_max_08
Цитата:

нужно чтобы батник скопировал в эту папку файл install.exe и запустил его.[/q]
Код:

@Echo Off

Set RegKey=HKLM\Software\MyProgram

For /F "Tokens=3,*" %%A In ('Reg Query %RegKey% /V Path ^| Find /I "Path"') Do Set ProgramDir=%%A %%B

If Exist "%ProgramDir%" Copy /Y install.exe "%ProgramDir%"
Start "" "%ProgramDir%\install.exe"


max_max_08 08-06-2009 12:45 1138164

Мда, ты даже не представляеш как меня выручил, короче, респект.

ofcoss 17-07-2009 13:07 1170457

Пишу так, в ответ молчание...

@Echo Off

Set DayLimit=10

Echo On Error Resume Next>~tmp.vbs
Echo Set WshShell = WScript.CreateObject("WScript.Shell")>>~tmp.vbs
Echo nDate = WshShell.RegRead("HKLM\Software\MyProgram\")>>~tmp.vbs
Echo If nDate = "" Then>>~tmp.vbs
Echo nDate = Now>>~tmp.vbs
Echo WshShell.RegWrite "HKLM\Software\MyProgram\", nDate>>~tmp.vbs
Echo End If>>~tmp.vbs
Echo If DateDiff("d", nDate, Now) ^> %DayLimit% Then WScript.Echo "Limit">>~tmp.vbs

For /F %%A In ('CScript ~tmp.vbs //Nologo') Do If /I "%%A"=="Limit" GoTo :EOF

Del /F /Q ~tmp.vbs>Nul
setup.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-


И еще, надо что бы батник записывал не в реестр , а в тхт файл, который находиться в запароленном архиве на съемной флехи, у кого есть скрипт поделитесь плиз

max_max_08 17-07-2009 18:23 1170769

Чет я не пойму, че делают твои строки начиная с сетап.ехе. И что должен делать весь батник?

ofcoss 17-07-2009 23:26 1171010

Как сделать что бы после 10 дней при запуске он удалял файлы из каталога
@Echo Off

Set DayLimit=10

Echo On Error Resume Next>~tmp.vbs
Echo Set WshShell = WScript.CreateObject("WScript.Shell")>>~tmp.vbs
Echo nDate = WshShell.RegRead("HKLM\Software\MyProgram\")>>~tmp.vbs
Echo If nDate = "" Then>>~tmp.vbs
Echo nDate = Now>>~tmp.vbs
Echo WshShell.RegWrite "HKLM\Software\MyProgram\", nDate>>~tmp.vbs
Echo End If>>~tmp.vbs
Echo If DateDiff("d", nDate, Now) ^> %DayLimit% Then WScript.Echo "Limit">>~tmp.vbs

For /F %%A In ('CScript ~tmp.vbs //Nologo') Do If /I "%%A"=="Limit" GoTo :EOF

Del /F /Q ~tmp.vbs>Nul

max_max_08 18-07-2009 13:37 1171284

Путь до каталога напиши, какие файлы надо удалить, все?

ofcoss 18-07-2009 19:23 1171469

например с/111/temp в папке temp всё надо удалить

ofcoss 19-07-2009 22:26 1172268

Разобрался, новый вопрос???
Цитата:

Цитата ofcoss
Set DayLimit=10
Echo On Error Resume Next>~tmp.vbs
Echo Set WshShell = WScript.CreateObject("WScript.Shell")>>~tmp.vbs
Echo nDate = WshShell.RegRead("HKLM\Software\MyProgram\")>>~tmp.vbs
Echo If nDate = "" Then>>~tmp.vbs
Echo nDate = Now>>~tmp.vbs
Echo WshShell.RegWrite "HKLM\Software\MyProgram\", nDate>>~tmp.vbs
Echo End If>>~tmp.vbs
Echo If DateDiff("d", nDate, Now) ^> %DayLimit% Then WScript.Echo "Limit">>~tmp.vbs
For /F %%A In ('CScript ~tmp.vbs //Nologo') Do If /I "%%A"=="Limit" GoTo :EOF
Del /F /Q ~tmp.vbs>Nul »

После это операции он создает в папке файл ~tmp.vbs, мне он ненужен, как это отключить????

amel27 20-07-2009 08:59 1172497

ofcoss, при лимите происходит выход из батника без удаления VBS-файла
Код:

Set DayLimit=10
Echo On Error Resume Next>~tmp.vbs
Echo Set WshShell = WScript.CreateObject("WScript.Shell")>>~tmp.vbs
Echo nDate = WshShell.RegRead("HKLM\Software\MyProgram\")>>~tmp.vbs
Echo If nDate = "" Then>>~tmp.vbs
Echo nDate = Now>>~tmp.vbs
Echo WshShell.RegWrite "HKLM\Software\MyProgram\", nDate>>~tmp.vbs
Echo End If>>~tmp.vbs
Echo If DateDiff("d", nDate, Now) ^> %DayLimit% Then WScript.Echo "Limit">>~tmp.vbs
For /F %%A In ('CScript ~tmp.vbs //Nologo') Do If /I "%%A"=="Limit" GoTo :END

:: ТУТ САМ
:: ТЕКСТ
:: БАТНИКА

:END
Del /F/Q ~tmp.vbs>Nul


Starter1 24-07-2010 20:00 1460007

Цитата:

Цитата max_max_08
У меня тоже вопрос, нужно что-бы батник считал сколько раз его запускали и при достижении определенного значения перешел по определенной метке. »

Пускай создаёт файл и в нём записывает номер.


Время: 14:09.

Время: 14:09.
© OSzone.net 2001-