Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Батч скрипт за процес при по-ниска версия

Featured Replies

Имаме следният ключ в регистъра:
 

Windows Registry Editor Version 5.00

[HKLM\Software\Product]
"Bld"=dword:000009c4

Където хексадекимал "000009c4" обърнато в декимал е версията на билда "2500".
Как ще стане батч скрипт така, че да се стартира myfile.exe само при по-ниска стойност от 2500? При 2400 или 2100 да се стартира myfile.exe, а при 2500 и нагоре - 2600, 2800 да се пропусне старта. :lock:

Не търся източник на видовете операции, а решението на цялостния код на скрипта. Тъй като не съм вещ в батч скрипта и да подчертая - не съм програмист. :) 

Разрешен от цър-вул

FOR /F "tokens=2* skip=2" %%a in ('reg query "HKLM\Software\Product" /v "Bld"') do 
(
if %%a leq 2500 (start "" "path.to\myfile.exe") else (goto :exit)
)
:exit
exit

Скриптът трябва да се стартира с админски права
Тествай първо в cmd as admin

reg query "HKLM\Software\Product" /v "Bld"

какво ще върне.

  • Автор
преди 6 часа, цър-вул написа:

Тествай първо в cmd as admin

reg query "HKLM\Software\Product" /v "Bld"

какво ще върне.

Връща: Bld    REG_DWORD    0x9c4

Целият скрипт иначе със или без допълнителни записи затваря конзолата без да се изпълни старта. Не вижда и следващите стъпки. Преписвам да остане единствено същия скрипт, който си дал, стартира се с админско право (без да го кликам с десен клик) и пак се затваря. Свалям надолу версията, не се получава. Опитах да сложа и това, което връща, същите провали. Има нещо недогласено. :lock:

преди 6 часа, цър-вул написа:
FOR /F "tokens=2* skip=2" %%a in ('reg query "HKLM\Software\Product" /v "Bld"') do 
(
if %%a lss 09E5 (start "" "path.to\myfile.exe") else (goto :exit)
)
:exit
pause
exit

 

Промени така и снимай изхода

  • Автор
преди 1 час, цър-вул написа:

Промени така и снимай изхода

Същата история. Излиза от конзолата. После оставих само:
reg query "HKLM\Software\Product" /v "Bld"
pause
exit
И този път си даде паузата. Кода не е както трябва. Ще има да се чопли много. Мисля, че можеш да експериментираш лесно, като направиш невалиден ключ в реигистъра и направиш опит за старт на някакво произволно EXE. Ще видиш, че работата не се случва.

 

За да стане още по-добро стартирането можеш да вкараш в началото скрипт за стартиране с админски права:
 

cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )

FOR /F "tokens=3* skip=2" %%a in ('reg query "HKLM\Software\Product" /v "Bld"') do (
if %%a leq 0x9c4 (start "" "path.to\myfile.exe") else (goto :exit)
)
:exit
exit

 

  • Автор
преди 29 минути, цър-вул написа:

За да стане още по-добро стартирането можеш да вкараш . . . .

Гъдела идва ако няма ключа и отсъства. Ще трябва пак да стартира. :shy11:

Всъщност ще му се добави предходна стъпка да отведе при грешка в стъпката за условие на версията.

cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )

FOR /F "tokens=3* skip=2" %%a in ('reg query "HKLM\Software\Product" /v "Bld"') do (
if %%a leq 0x9c4 (
if [%%a]==[] (
start "" "path.to\myfile.exe") else (goto :exit)
)
:exit
exit

 

  • Автор

Поправих го така, че скобките и без това не съответстваха по брой отваряне/затваряне :lock:

FOR /F "tokens=3* skip=2" %%a in ('reg query "HKLM\Software\Product" /v "Bld") do (
if [%%a]==[] (start "" "path.to\myfile.exe")  else (goto :exit)
if %%a lss 0x75b5 (start "" "path.to\myfile.exe") else (goto :exit)
)

Обаче и този вариант е грешен.

преди 28 минути, Клонинга написа:
if [%%a]==[] (start "" "path.to\myfile.exe")  else (goto :exit)
if %%a lss 0x75b5 (start "" "path.to\myfile.exe") else (goto :exit)

Тази структура е грешна! Вторият ред посмъртно няма да се изпълни. Винаги ще се прескача
А скобите са си ТОЧНО на място

  • Автор

И двете условия не ми се изпълняват командите.

FOR /F "tokens=3* skip=2" %%a in ('reg query "HKLM\Software\Product" /v "Bld"') do (
if %%a leq 0x9c4 (
if [%%a]==[] (
start "" "path.to\myfile.exe") else (goto :exit)
)

 

преди 1 час, цър-вул написа:
if %%a leq 0x9c4 (
if [%%a]==[] (
start "" "path.to\myfile.exe") else (goto :exit)
)

Брой ги на ръка - колко отворени и колко затворени - тези жарки при теб не съответстват на двойките - синя и червена са една двойка!

  • Автор

Не ми се изпълняват и двете команди. Ти опитал ли си го собственоръчно да провериш дали действа?

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.