Wpis z mikrobloga

#komputery #informatyka #windows

Jak dopisać nową wartość na końcu w rejestrze? Tak by nie nadpisywało już istniejącej wartości, a na końcu robiło nową?
Ewentualnie jakiś skrypt, który wartość z klucza kopiuje, dopisuje i wówczas nadpisuje w istniejącym?

Fajnie gdyby szło to zrobić w pliku bat, reg lub jakimś innym wykonywalnym.
  • 17
@NyanNyan: @Invisible22: chodzi mi o zrobienie pliku wykonywalnego (jakiś kod, skrypt i po jego uruchomieniu wykona się czynność).

Skrypt, kod ma dodać do wartości nowy zapis.

Jak robię plik reg i podaję co ma zapisać w kluczu, to wartość nadpisuje (kasuje starą i wstawia nową), a tego nie chcę.
Chcę by plik reg (lub inny, wykonywalny) dodał do istniejącego już klucza wartość.

np.

path ma wartość c:\windows

plik ma zrobić
@kosti9191:
Sprawdziłem i w formie pliku wsadowego działa:

set klucz=HKCU\jakisklucz

set nazwa=test

set wartosc=x

set dopisz=C:\folder


for /F "skip=2 tokens=3" %%r in ('reg query %klucz% /v %nazwa%') do set wartosc=%%r

set nowawartosc=%wartosc%%dopisz%

echo %klucz%

echo %nazwa%

echo %wartosc%

echo %nowawartosc%

reg add %klucz% /v %nazwa% /d %nowawartosc% /f
Sprawdziłem i w formie pliku wsadowego działa:


@NyanNyan: zrobiłem ten plik:

@echo off
set klucz=HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment\Path
set nazwa=test
set wartosc=x
set dopisz=;C:\folder

for /F "skip=2 tokens=3" %%r in ('reg query %klucz% /v %nazwa%') do set wartosc=%%r
set nowawartosc=%wartosc%%dopisz%
echo %klucz%
echo %nazwa%
echo %wartosc%
echo %nowawartosc%
reg add %klucz% /v %nazwa% /d %nowawartosc% /f

No i być może problem tkwi w tym, że klucz jest ze ścieżką aż do wartości?
bo
@kosti9191: Ok, krótki manual
klucz - wiadomo, acz nie wiem czy regedit nie używa skrótów (np. HKLM, HKCU, etc.), ponadto w przypadku występowania spacji w ścieżce musisz ubrać całość w cudzysłów, inaczej się to wysypie
nazwa - to jest nazwa REG_SZ, którego wartość chcesz zmienić; wytnij "Path" ze zmiennej "klucz" i daj go tutaj
wartość=x - trzeba zainicjalizować zmienną czymkolwiek, inaczej się to posypie
dopisz -> tu masz dobrze