reg delete - usuwanie nazwy wartości

0

Witam

Chcę usunąć nazwę wartości z rejestru za pomocą pliku .bat. Ale problem jest taki że ta nazwa wartości może być różna na innych komputerach, chodzi dokładnie o literę napędu DVD-ROM.

reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "X:\setup\katalog\program.exe" /f >NUL
Literą X może być: D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z.

Na razie zrobiłem tak, wiem że lepiej dałoby się to zrobić ale nie wiem jak.

reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "D:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "E:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "F:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "G:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "H:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "I:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "J:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "K:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "L:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "M:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "N:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "O:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "P:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "Q:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "R:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "S:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "T:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "U:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "V:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "W:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "X:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "Y:\setup\katalog\program.exe" /f >NUL
reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v "Z:\setup\katalog\program.exe" /f >NUL

Pomoże mi ktoś?

0

RTFM! Tak trudno pogooglować: http://www.robvanderwoude.com/for.php i helpem do for albo video tutorialami @Gynvael Coldwind'a skorygować, że potrzeba tutaj podwójnego znaku procenta? Ech. Masz:

@echo off
FOR %%A IN (1) DO FOR %%A IN (A B C D E F G H) DO ECHO %%A

Oczywiście liter może być więcej. Pewnie jest prostszy sposób z zakresem liter, ale nie chce mi się kombinować. To już pozostawiam Tobie. Możesz się wykazać czymś więcej niż imo lenistwem :/

EDIT: jeszcze lepszy przykład znalazłem na innej stronie. Tylko problem jest z napędami wyjmowalnymi. Ale są metody sprawdzenia zewnętrznymi programami albo napisania własnego nawet w AutoHotKey'u na przykład jeśli nie znasz żądnych języków, to skorzystać można ze skryptowego ahk. Który będzie zwracał informacje jakiego typu jest dysk podany w parametrze. Można też taki program napisać najprościej dla mnie w Delphi, ale może ogarniesz to sobie w czymś innym.

@echo off
for %%I in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  if exist %%I: (
    echo %%I:
  )
)
0

Dzięki olesio za odpowiedź, no wiesz... nie jestem leniem tylko po prostu nie znam się dobrze na pisaniu plików .bat
Nawet nie wiem co mam teraz zrobić z tym kodem który mi podałeś, gdzie i jak mam dodać do tego kodu "reg delete" ?
sory nie denerwuj się za głupie pytanie.

EDIT: Dzięki. sprawdze i odpisze jak nie dam sobie z tym rady.

0

Zobacz dopisany kod po EDIT: w mojej powyższej odpowiedzi. Teraz pomyśl i napisz to sam. Musisz używać takiego magicznego komponentu TBrain. Każdy go posiada, nawet jeśli nie pisze w Delphi, a przynajmniej posiadać powinien. Znajduje się on pomiędzy Twoimi uszami :) A i nie denerwuje się. Ale jeżeli masz przykład jasny jak słońce i nadal z niego nie umiesz skorzystać, to pozostaje mi się tylko załamać i ewentualnie polecić Tobie zlecenie tego komuś w dziale Oferty Pracy za rozsądną opłatą. Skoro nie ogarniasz takich rzeczy. Tak wiem, rzecz do zrobienia banalna. Ale widzę, że i z takimi prostymi zagadnieniami ludzie mają problemy. Coż poradzić :/

1

Zrobiłem. Działa. :)

for %%I in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  reg.exe DELETE "HKCR\Local Settings\Software\Microsoft\Windows\Shell\MuiCache" /v %%I":\setup\katalog\program.exe" /f )

1 użytkowników online, w tym zalogowanych: 0, gości: 1