2008-09-26 14 views
36

मैं "HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0" जैसे कुछ पथ के साथ विंडोज़ RegEdit लॉन्च कैसे करूं, इसलिए मुझे क्लिक करने की आवश्यकता नहीं है?कुछ पथ के साथ विंडोज 'RegEdit कैसे लॉन्च करें?

ऐसा करने के लिए कमांड लाइन तर्क क्या है? या RegEdit के स्विच की व्याख्या खोजने के लिए कोई जगह है?

उत्तर

27

मार्क रसेलिनोविच द्वारा RegJump नामक एक प्रोग्राम है, जो कि आप जो चाहते हैं वह करता है। यह regedit लॉन्च करेगा और इसे कमांड लाइन से इच्छित कुंजी पर ले जाएगा।

रेगजंप प्रत्येक आक्रमण पर एक ही regedit विंडो का उपयोग करता है (या कम से कम उपयोग किया जाता है), इसलिए यदि आप कई regedit सत्र खोलना चाहते हैं, तो आपको अभी भी सभी के लिए पुराने तरीके से काम करना होगा, लेकिन एक RegJump के पास है गोद लिया। एक मामूली चेतावनी, लेकिन किसी को भी ध्यान रखने के लिए, वैसे भी।

+1

मैट डिलार्ड ने यहां एक और उत्तर में बताया, regedit में पसंदीदा भी हैं, इसलिए आप जल्दी ही regedit के भीतर अपनी पसंद की विभिन्न चाबियों पर कूद सकते हैं। –

+3

विंडोज विस्टा/7/8 उपयोगकर्ताओं के लिए: आप ['एलिवेट]] (http://technet.microsoft.com/en-us/magazine/2007.06.utilityspotlight.aspx) इंस्टॉल करना चाहते हैं, इसे अपने 'पाथ' में जोड़ें 'और फिर' regjump 'बढ़ाएं यदि आप इसे अपनी कमांड लाइन से उपयोग करने की योजना बना रहे हैं: http://superuser.com/a/42647/97570 –

+1

यदि आप RegJump इंस्टॉल नहीं करना चाहते हैं, तो @ byron-persino's [ उत्तर] (http://stackoverflow.com/a/12516008/4270771) इसके बजाए। यह अधिक हल्का वजन है और किसी तीसरे पक्ष के सॉफ्टवेयर की आवश्यकता नहीं है। –

0

यह बुरी तरह पुराने हो चुके लगता है, लेकिन Registration Info Editor (REGEDIT) Command-Line Switches दावा है कि यह इस समर्थन नहीं करता है।

+1

यह एक पूरी तरह से अलग regedit है ... जिसे हम regedit कहते हैं अब Win3.x regedit के समान नहीं है। http://support.microsoft.com/kb/141377/en-us –

2

जैसा कि क्रिस का उल्लेख है, RegJump चाल करेगा।

इसके अलावा, यदि आप अपने आप को कई अलग-अलग पथों के बीच आगे बढ़ते हुए पाते हैं, तो यह न भूलें कि आप रेजीडिट में "पसंदीदा" सेट कर सकते हैं। यह काफी सुविधाजनक है, और आपको प्रत्येक के लिए एक अलग डेस्कटॉप आइकन की आवश्यकता नहीं होगी (जैसा कि आप RegJump के साथ हो सकता है)।

5

http://windowsxp.mvps.org/jumpreg.htm से (मैं इनमें से कोई प्रयास नहीं किया है):

जब आप Regedit शुरू करते हैं, यह स्वचालित रूप से पिछले महत्वपूर्ण यह है कि देखा गया था खुल जाता है। (विंडोज एक्सपी में रजिस्ट्री संपादक अंतिम देखी गई रजिस्ट्री कुंजी को एक अलग स्थान पर सहेजता है)। यदि आप पथ को मैन्युअल रूप से नेविगेट किए बिना सीधे किसी विशेष रजिस्ट्री कुंजी पर कूदना चाहते हैं, तो आप इनमें से किसी भी विधि/टूल का उपयोग कर सकते हैं।

विकल्प 1
एक VBScript का उपयोग करना: के रूप में सहेजें के रूप में registry.vbs

'Launches Registry Editor with the chosen branch open automatically 
'Author : Ramesh Srinivasan 
'Website: http://windowsxp.mvps.org 

Set WshShell = CreateObject("WScript.Shell") 
Dim MyKey 
MyKey = Inputbox("Type the Registry path") 
MyKey = "My Computer\" & MyKey 
WshShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Lastkey",MyKey,"REG_SZ" 
WshShell.Run "regedit", 1,True 
Set WshShell = Nothing 

डबल क्लिक करें Registry.vbs एक नोटपैड दस्तावेज़ में इन पंक्तियों को कॉपी और फिर पूर्ण रजिस्ट्री पथ जो आप चाहते हैं टाइप करें खोलना।

उदाहरण: HKEY_CLASSES_ROOT\.MP3

सीमा: यदि Regedit पहले से खुला है उपरोक्त विधि मदद नहीं करता है।

नोट: विंडोज 7 के लिए, आप लाइन MyKey = "Computer\" & MyKey साथ MyKey = "My Computer\" & MyKey (स्ट्रिंग My निकालने के लिए) को बदलने के लिए की जरूरत है। एक जर्मन विंडोज एक्सपी के लिए स्ट्रिंग "My Computer\" को "Arbeitsplatz\" द्वारा प्रतिस्थापित किया जाना चाहिए।

विकल्प 2
Regjump Sysinternals.com

से इस छोटे कमांड लाइन एप्लेट एक रजिस्ट्री पथ लेता है और Regedit कि पथ के लिए खुला बनाता है। यह मानक में रूट कुंजी स्वीकार करता है (उदा। HKEY_LOCAL_MACHINE) और संक्षिप्त रूप (उदा। एचकेएलएम)।

उपयोग: regjump [पथ]

उदाहरण: C:\Regjump HKEY_CLASSES_ROOT\.mp3

विकल्प 3
12Ghosts JumpReg 12ghosts.com से

कूद एक ट्रे आइकन से चाबी रजिस्ट्री करने के लिए! यह एक आश्चर्यजनक रूप से उपयोगी उपकरण है। आप प्रबंधित और सीधे एक्सेस की गई रजिस्ट्री कुंजियों पर जा सकते हैं। असीमित सूची का आकार, कुंजी और मानों पर कूदें, एक क्लिक के साथ वर्तमान कुंजी प्राप्त करें, क्लिपबोर्ड में कुंजी पर जाएं, HKCU या HKLM में कुंजी में उसी पर जाएं। उपयोग में आसान ट्रे आइकन मेनू में टिप्पणियों के साथ कुंजी को प्रबंधित और सॉर्ट करें। रजिस्ट्री कुंजियों के लिए शॉर्टकट बनाएं।

4

मैं यह भी ध्यान रखना चाहूंगा कि आप PowerShell से रजिस्ट्री को देख और संपादित कर सकते हैं। इसे लॉन्च करें, और अपनी पसंद के रजिस्ट्री स्थान को खोलने के लिए सेट-स्थान का उपयोग करें। HKEY का संक्षिप्त नाम फ़ाइल सिस्टम में ड्राइव अक्षर की तरह उपयोग किया जाता है (इसलिए HKEY_LOCAL_MACHINE \ Software पर जाने के लिए, आप कहेंगे: सेट-स्थान hklm: \ Software)।

PowerShell में रजिस्ट्री के प्रबंधन के बारे में अधिक जानकारी PowerShell कमांड प्रॉम्प्ट पर get-help रजिस्ट्री टाइप करके पाई जा सकती है। अपनी रजिस्ट्री पथ के साथ

Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Veritas\NetBackup\CurrentVersion\Config 

:

24

निम्नलिखित बैच फ़ाइल का उपयोग करें (filename.bat में जोड़ने के लिए):

REG ADD HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit /v LastKey /t REG_SZ /d Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Veritas\NetBackup\CurrentVersion\Config /f 
START regedit 

को बदलने के लिए।

+0

बेस्ट उत्तर। यह याद रखना कि आपको दूसरा कमांड फ़ंक्शन बनाने के लिए व्यवस्थापकीय विशेषाधिकारों के साथ 'cmd' लॉन्च करना होगा, या आप दो आदेशों के बीच '&' जोड़ सकते हैं और निष्पादित कर सकते हैं। – kokbira

+3

मुझे लगता है कि यह उत्तर सही के रूप में सेट किया जाना चाहिए क्योंकि इसे डाउनलोड करने के लिए किसी भी सॉफ्टवेयर की आवश्यकता नहीं है। – Karim

+0

, एक स्क्रिप्ट आप चला सकते हैं करवाने के लिए एक .bat फ़ाइल में इस ड्रॉप: REG ADD HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \: "पथ पर खुला regedit" सेट/p regPath = बंद @echo एप्लेट्स \ Regedit/v LastKey/t REG_SZ/d "% regPath%"/f स्टार्ट regedit –

1

clipboard.exe का उपयोग कर एक बैट फ़ाइल बनाएँ और regjump.exe क्लिपबोर्ड में महत्वपूर्ण के लिए कूद करने के लिए:

clipboard.exe > "%~dp0clipdata.txt" 
set /p clipdata=input < "%~dp0clipdata.txt" 
regjump.exe %clipdata% 

(% ~ dp0 का अर्थ है "बैट फ़ाइल का पथ")

+1

'क्लिपबोर्ड' को आंतरिक या बाहरी कमांड के रूप में पहचाना नहीं गया है, ऑपरेट करने योग्य प्रोग्राम या बैच फ़ाइल। – rojo

2

मुझे लगा कि यह सी # समाधान मदद कर सकता है:

पहले के एक सुझाव का इस्तेमाल कर रही करके, हम कुंजी हम भी हम एक पैरामीटर के रूप कुंजी पारित नहीं हो सकता है, हालांकि चाहते खोलने में RegEdit चाल कर सकते हैं।

इस उदाहरण में, "रजिस्ट्री सेटिंग्स" का मेनू विकल्प उस प्रोग्राम के लिए नोड को RegEdit खोलता है जिसे इसे कहा जाता है।

कार्यक्रम के स्वरूप:

private void registrySettingsToolStripMenuItem_Click(object sender, EventArgs e) 
    { 
     string path = string.Format(@"Computer\HKEY_CURRENT_USER\Software\{0}\{1}\", 
            Application.CompanyName, Application.ProductName); 

     MyCommonFunctions.Registry.OpenToKey(path); 

    } 

MyCommonFunctions.Registry

/// <summary>Opens RegEdit to the provided key 
    /// <para><example>@"Computer\HKEY_CURRENT_USER\Software\MyCompanyName\MyProgramName\"</example></para> 
    /// </summary> 
    /// <param name="FullKeyPath"></param> 
    public static void OpenToKey(string FullKeyPath) 
    { 
     RegistryKey rKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Applets\Regedit", true); 
     rKey.SetValue("LastKey",FullKeyPath); 

     Process.Start("regedit.exe"); 
    } 
बेशक

, आप यह सब रूप से एक विधि में डाल सकता है, लेकिन मैं reusablity पसंद है।

3

नीचे पाठ प्रतिलिपि करें और एक बैच फ़ाइल के रूप में बचाने के लिए और रजिस्ट्री कुंजी आप को खोलने के लिए जब बैच फ़ाइल इसके लिए संकेत देता है इच्छा के रास्ते चलाने

@ECHO OFF 
SET /P "showkey=Please enter the path of the registry key: " 
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v "LastKey" /d "%showkey%" /f 
start "" regedit 

इनपुट, और Enter दबाएँ। Regedit उस मान में परिभाषित कुंजी पर खुलता है।

4

यहां पोस्ट किए गए अन्य बैच समाधानों की तुलना में कई संवर्द्धन के साथ एक और बैच फ़ाइल समाधान है।

यह स्ट्रिंग मान LastKey भी सेट करता है जो कि प्रत्येक निकास पर रीजिटिट द्वारा अपडेट किया जाता है ताकि अंतिम निकास के समान ही शुरू हो सके।

@echo off 
setlocal EnableDelayedExpansion 
set "RootName=Computer" 

if not "%~1"=="" (
    set "RegKey=%~1" 
    goto PrepareKey 
) 

echo/ 
echo Please enter the path of the registry key to open. 
echo/ 
set "RegKey=" 
set /P "RegKey=Key path: " 

rem Exit batch file without starting Regedit if nothing entered by user. 
if "!RegKey!"=="" goto ExitBatch 

:PrepareKey 
rem Remove square brackets and double quotes from entered key path. 
set "RegKey=!RegKey:"=!" 
if "!RegKey!"=="" goto ExitBatch 
set "RegKey=!RegKey:[=!" 
if "!RegKey!"=="" goto ExitBatch 
set "RegKey=!RegKey:]=!" 
if "!RegKey!"=="" goto ExitBatch 

rem Replace hive name abbreviation by appropriate long name. 
set "Abbreviation=%RegKey:~0,4%" 
if /I "%Abbreviation%"=="HKCC" (
    set "RegKey=HKEY_CURRENT_CONFIG%RegKey:~4%" 
    goto GetRootName 
) 
if /I "%Abbreviation%"=="HKCR" (
    set "RegKey=HKEY_CLASSES_ROOT%RegKey:~4%" 
    goto GetRootName 
) 
if /I "%Abbreviation%"=="HKCU" (
    set "RegKey=HKEY_CURRENT_USER%RegKey:~4%" 
    goto GetRootName 
) 
if /I "%Abbreviation%"=="HKLM" (
    set "RegKey=HKEY_LOCAL_MACHINE%RegKey:~4%" 
    goto GetRootName 
) 
if /I "%RegKey:~0,3%"=="HKU" (
    set "RegKey=HKEY_USERS%RegKey:~3%" 
) 

:GetRootName 
rem Try to determine automatically name of registry root. 
for /F "tokens=1,2*" %%K in ('%SystemRoot%\System32\reg.exe query "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v "LastKey"') do (
    if /I "%%K"=="LastKey" (
     for /F "delims=\" %%N in ("%%M") do set "RootName=%%N" 
    ) 
) 

rem Is Regedit already running? 
%SystemRoot%\System32\tasklist.exe | %SystemRoot%\System32\findstr.exe /B /I /L regedit.exe >nul 
if errorlevel 1 goto SetRegPath 

echo/ 
echo Regedit is already running. Path can be set only when Regedit is not running. 
echo/ 
set "Choice=N" 
set /P "Choice=Kill Regedit (y/N): " 
if /I "!Choice!"=="y" (
    %SystemRoot%\System32\taskkill.exe /IM regedit.exe >nul 2>nul 
    goto SetRegPath 
) 
echo Switch to running instance of Regedit without setting entered path. 
goto StartRegedit 

:SetRegPath 
rem Add this key as last key to registry for Regedit. 
%SystemRoot%\System32\reg.exe add "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" /v "LastKey" /d "%RootName%\%RegKey%" /f >nul 2>nul 

:StartRegedit 
start /B regedit.exe 

:ExitBatch 
endlocal 

संवर्द्धन हैं:

  1. रजिस्ट्री पथ भी बैच स्क्रिप्ट के कमांड लाइन पैरामीटर के रूप में पारित किया जा सकता।

  2. रजिस्ट्री पथ को डबल कोट्स के साथ या उसके बिना चिपकाया जा सकता है या चिपकाया जा सकता है।

  3. रजिस्ट्री पथ को घुमाया जा सकता है या चिपकाया जा सकता है या आसपास के वर्ग ब्रैकेट के साथ पैरामीटर के रूप में पारित किया जा सकता है।

  4. रजिस्ट्री पथ को संक्षेप में हाइव नाम (HKCC, HKCU, HKCR, HKLM, HKU) के साथ पैरामीटर के रूप में दर्ज या पेस्ट या पास किया जा सकता है।

  5. बैच स्क्रिप्ट पहले से ही रेजीडिट चलाने के लिए चेक करता है क्योंकि रजिस्ट्री कुंजी को रीजीडिट शुरू करते समय दिखाया नहीं जाता है जबकि रीजिटिट पहले से चल रहा है। बैच उपयोगकर्ता से पूछा जाता है कि दर्ज रजिस्ट्री पथ दिखाने के लिए इसे पुनरारंभ करने के लिए चल रहा उदाहरण मारा जाना चाहिए। यदि बैच उपयोगकर्ता Regedit को मारने का विकल्प नहीं चुनता है, तो Regedit को सीधे मार्ग पर सेट किए गए पथ को सेट किए बिना शुरू किया जाता है (आमतौर पर) रेजीडिट विंडो को अग्रभूमि में प्राप्त करने में।

  6. बैच फ़ाइल स्वचालित रूप से रजिस्ट्री जड़ है जिस पर अंग्रेजी Windows XP मेरा कंप्यूटर है, पर जर्मन Windows XP, Arbeitsplatz के नाम पाने के लिए कोशिश करता है, और विंडोज 7 सिर्फ कंप्यूटर पर। यह विफल हो सकता है यदि Regedit के मान LastKey रजिस्ट्री में अनुपलब्ध या खाली है। इस मामले के लिए कृपया बैच कोड की तीसरी पंक्ति में सही रूट नाम सेट करें।

+0

मैंने रूट के रूप में "कंप्यूटर" के साथ कमांड किया, हालांकि मेरी रजिस्ट्री रूट "कंप्यूटोरर" (पीटी-बीआर) थी, और यह रूट नाम के बावजूद अच्छी तरह से काम किया ... – kokbira

+1

@kokbira यह जानकर अच्छा लगा कि यह बैच फ़ाइल भी काम करती है ब्राजील और यह 'GetRootName' लेबल के तहत कोड का उपयोग करके स्वयं द्वारा रूट नाम के रूप में' कंप्यूटोर 'को ढूंढ सकता है और संक्षेप में बिंदु 6 में समझाया गया है। – Mofi

1
lionkingrafiki's answer पर

भवन, यहाँ एक और अधिक मजबूत समाधान है कि एक तर्क के रूप में एक reg कुंजी पथ को स्वीकार करेंगे और स्वचालित रूप से HKLM HKEY_LOCAL_MACHINE या इसी तरह के रूप में की जरूरत का अनुवाद होगा। यदि कोई तर्क नहीं है, तो स्क्रिप्ट htmlfile COM ऑब्जेक्ट का उपयोग करके क्लिपबोर्ड को JScript hybrid chimera द्वारा उपयोग किया जाता है। कॉपी किए गए डेटा को विभाजित और टोकननाइज्ड किया जाएगा, इसलिए इससे कोई फर्क नहीं पड़ता कि यह छंटनी नहीं हुई है या यहां तक ​​कि नकली गंदगी के पूरे अनुच्छेद में भी नहीं है। और अंत में, LastKey से पहले कुंजी का अस्तित्व सत्यापित किया गया है। रिक्त स्थान वाले मुख्य पथ डबल कोट्स के भीतर होना चाहिए।

@if (@CodeSection == @Batch) @then 
:: regjump.bat 
@echo off & setlocal & goto main 

:usage 
echo Usage: 
echo * %~nx0 regkey 
echo * %~nx0 with no args will search the clipboard for a reg key 
goto :EOF 

:main 
rem // ensure variables are unset 
for %%I in (hive query regpath) do set "%%I=" 

rem // if argument, try navigating to argument. Else find key in clipboard. 
if not "%~1"=="" (set "query=%~1") else (
    for /f "delims=" %%I in ('cscript /nologo /e:JScript "%~f0"') do (
     set "query=%%~I" 
    ) 
) 

if not defined query (
    echo No registry key was found in the clipboard. 
    goto usage 
) 

rem // convert HKLM to HKEY_LOCAL_MACHINE, etc. while checking key exists 
for /f "delims=\" %%I in ('reg query "%query%" 2^>NUL') do (
    set "hive=%%~I" & goto next 
) 

:next 
if not defined hive (
    echo %query% not found in the registry 
    goto usage 
) 

rem // normalize query, expanding HKLM, HKCU, etc. 
for /f "tokens=1* delims=\" %%I in ("%query%") do set "regpath=%hive%\%%~J" 
if "%regpath:~-1%"=="\" set "regpath=%regpath:~0,-1%" 

rem // https://stackoverflow.com/a/22697203/1683264 
>NUL 2>NUL (
    REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit"^ 
     /v "LastKey" /d "%regpath%" /f 
) 

echo %regpath% 

start "" regedit 
goto :EOF 

@end // begin JScript hybrid chimera 
// https://stackoverflow.com/a/15747067/1683264 
var clip = WSH.CreateObject('htmlfile').parentWindow.clipboardData.getData('text'); 

clip.replace(/"[^"]+"|\S+/g, function($0) { 
    if (/^\"?(HK[CLU]|HKEY_)/i.test($0)) { 
     WSH.Echo($0); 
     WSH.Quit(0); 
    } 
}); 
0

आप इसे regedit तरह दिखाई कर सकते हैं एक बैच फ़ाइल (प्रस्तुतियाँ से पहले ही दिया) बनाने के द्वारा इस व्यवहार करता है, लेकिन यह regedit.bat फोन और सी में रख: \ WINDOWS \ system32 फ़ोल्डर। (यदि आप कोई कमांड लाइन तर्क नहीं देते हैं, तो आप रजिस्ट्री में अंतिमकी को संपादित करना छोड़ सकते हैं, इसलिए regedit के रूप में अपने स्वयं के कार्यों पर "regedit" हमेशा किया जाता है) फिर "HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 8.0" regedit क्या करेगा तुम्हें चाहिए।

यह इस तथ्य का उपयोग करता है कि पीएटीएच में क्रम आमतौर पर सी: \ विन्डोज़ \ system32; सी: \ विन्डोज़; सी: \ विन्डोज़ \ System32 \ Wbem; आदि

1

यहाँ ऊपर https://stackoverflow.com/a/12516008/1179573

function jumpReg ($registryPath) 
{ 
    New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit" ` 
        -Name "LastKey" ` 
        -Value $registryPath ` 
        -PropertyType String ` 
        -Force 

    regedit 
} 

jumpReg ("Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run") | Out-Null 

इस उत्तर के आधार पर एक सरल PowerShell समारोह जवाब ऊपर वास्तव में बहुत अच्छी तरह से यह क्या करता है की व्याख्या नहीं करता है। जब आप RegEdit को बंद करते हैं, तो यह आपकी अंतिम ज्ञात स्थिति HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit में सहेजता है, इसलिए यह केवल अंतिम ज्ञात स्थिति को बदल देता है जहां आप कूदना चाहते हैं, फिर इसे खोलें।