کار بار ریجستری با دستورات CMD و .BAT

در ادامه آموزش کار با خط فرمان و نوشتن اسکریت بچ فایل ‌ها با فرمت .Bat در این بخش آموزش کار بار یجستری را با هم مرور می‌کنیم

همچنین بهتر است این مطالب را مطالعه کنید

درباره Batch File و دستورات CMD و .BAT

معرفی برنامه Reg Converter | تبدیل فایل ریجستری به Bat

 

رجیستری یکی از عناصر کلیدی در سیستم ویندوز است. ریجستری شامل اطلاعات زیادی در مورد جنبه‌های مختلف سیستم عامل می‌باشد. تقریبا تمام برنامه‌های نصب شده بر روی یک سیستم ویندوز با رجیستری ارتباط برقرار می کنند.

رجیستری شامل دو عنصر اساسی است:

کلید های رجیستری(Registry keys) مشابه پوشه ها هستند. مقادیر رجیستری(Registry values) مشابه پرونده ها هستند. کلید ممکن است حاوی مقادیر یا کلید‌های بیشتر باشد. کلید‌ها با مسیری شبیه نام مسیر ویندوز اشاره می‌شوند، با استفاده از backslash(\) ها که برای نشان دادن سطوح سلسله مراتبی آنها می‌باشد.

در خط فرمان CMD ما می‌توانید یک مقدار را بررسی کنیدم، مقداری و یا کلیدی را اضافه، حذف و یا ویرایش کنیم

می‌توانید برای مشخص کردن کلیدهای ریشه (Root Keys) در دستور REG از مخفف آنها استفاده کنید؛

REG QUERY

خواندن رجیستری از طریق دستور REG QUERY انجام می‌شود.

این دستور می تواند برای بازیابی مقادیر هر کلید از داخل رجیستری استفاده شود.

نحوه دستور:

REG QUERY [ROOT\]RegKey /v ValueName [/s] REG QUERY [ROOT\]RegKey /ve --This returns the (default) value

 

مثال:

<span class="lit">@echo</span><span class="pln"> off 
REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows</span>

دستور بالا تمامی کلیدها و مقادیر مربوطه آنها را تحت کلید رجیستری HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Windows \ نمایش می‌دهد

خروجی مثال:

REG ADD

اضافه کردن به رجیستری با استفاده از دستور REG ADD انجام می‌شود.

توجه داشته باشید که برای اضافه کردن مقادیر به رجیستری، لازم است که دسترسی برای انجام این عملیات داشته باشید. (می‌توانید از CMD یا .bat در حالت run as administrator استفاده کنید)

نحوه دستور:

REG ADD [ROOT\]RegKey /v ValueName [/t DataType] [/S Separator] [/d Data] [/f]
REG ADD [ROOT\]RegKey /ve [/d Data] [/f]

توضیح سویچ و پارامتر‌ها

مثال:

@echo off 
REG ADD HKEY_CURRENT_USER\Console /v Test /d "Test Data" 
REG QUERY HKEY_CURRENT_USER\Console /v Test

بعد از اضافه شدن موفق پغام The operation completed successfully. نمایش داده می‌شود.

خروجی مثال:

REG DEL

حذف از رجیستری با استفاده از دستور REG DEL انجام می‌شود.

توجه داشته باشید که برای حذف کردن مقادیر از رجیستری، لازم است که دسترسی برای انجام این عملیات داشته باشید. (می‌توانید از CMD یا .bat در حالت run as administrator استفاده کنید)

نحوه دستور:

REG DELETE [ROOT\]RegKey /v ValueName [/f] 
   REG DELETE [ROOT\]RegKey /ve [/f] 
   REG DELETE [ROOT\]RegKey /va [/f]

توضیح سویچ و پارامتر‌ها:

مثال:

@echo off
REG DELETE HKEY_CURRENT_USER\Console /v Test /f
REG QUERY HKEY_CURRENT_USER\Console /v Test

بعد از حذف شدن موفق پغام The operation completed successfully. نمایش داده می‌شود. دستور دوم هم که برای بررسی وجود کلید هست پیغام خطا می‌‌دهد که کلید وجود ندارد ( صحت عملکرد)

خروجی مثال:

REG COPY

کپی کردن از رجیستری با استفاده از دستور REG COPY انجام می‌شود.

توجه داشته باشید که برای کپی کردن مقادیر از رجیستری، لازم است که دسترسی برای انجام این عملیات را در هر دو محل منبع و مقصد داشته باشید. (می‌توانید از CMD یا .bat در حالت run as administrator استفاده کنید)

نحوه دستور:

REG COPY [\\SourceMachine\][ROOT\]RegKey [\\DestMachine\][ROOT\]RegKey

مثال:

@echo off 
REG COPY HKEY_CURRENT_USER\Console HKEY_CURRENT_USER\Console\Test 
REG QUERY HKEY_CURRENT_USER\Console\Test

بعد از کپی شدن موفق پغام The operation completed successfully. نمایش داده می‌شود.

خروجی مثال:

REG COMPARE

مقایسه کلید های رجیستری با استفاده از دستور REG COMPARE انجام می‌شود.

نحوه دستور:

REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/v ValueName] [Output] [/s]
REG COMPARE [ROOT\]RegKey [ROOT\]RegKey [/ve] [Output] [/s]

توضیح سویچ و پارامتر‌ها:

مقدار Output به مفهوم نوع خروجی را میتوانید :

مثال:

@echo off
REG COMPARE HKEY_CURRENT_USER\Console HKEY_CURRENT_USER\Console\Test

خروجی مثال:

در این نمونه پیغام Result Compared: Identical مشابه‌ بودن دو مقدار را تاپید می‌کند

در این نمونه پیغام Result Compared: Different نشان دهنده وجود تفاوت می‌باشد که مقادیر متقاوت نشان داده شده است

 

برای نمونه من در استفاده از برنامه Angry IP scanner یکسری تنظیمات همیشگی برای نوع پورت و ستون‌های مورد نیازم جهت نمایش دارم ، که در سیستم‌های مشتری‌های مختلف باید این تنظیمات رو دوباره وارد کنم

برای سرعت بخشیدن به کار:

به ریجستری میرم و از کلید مربوط به نرم افزار یک خروجی میگیرم

‌های مورد نیازم را در یک فایل متنی با توجه با دستورات add به یک فایل .bat تغییر میدهم

@ECHO OFF
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "uuid" /t REG_SZ /d "bd229342-64e7-4786-a858-ddbe8a4ee151" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "language" /t REG_SZ /d "system" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "max/Threads" /t REG_SZ /d "100" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "thread/Delay" /t REG_SZ /d "20" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "scan/Dead/Hosts" /t REG_SZ /d "false" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "selected/Pinger" /t REG_SZ /d "pinger.windows" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "ping/Timeout" /t REG_SZ /d "2000" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "ping/Count" /t REG_SZ /d "3" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "skip/Broadcast/Addresses" /t REG_SZ /d "true" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "port/Timeout" /t REG_SZ /d "2000" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "adapt/Port/Timeout" /t REG_SZ /d "true" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "min/Port/Timeout" /t REG_SZ /d "100" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "port/String" /t REG_SZ /d "80,8080,1433,37777,5010,4370" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "use/Requested/Ports" /t REG_SZ /d "true" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "not/Available/Text" /t REG_SZ /d "[n\a]" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "not/Scanned/Text" /t REG_SZ /d "[n\s]" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "first/Run" /t REG_SZ /d "false" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "last/Run/Version" /t REG_SZ /d "3.5.5" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "last/Version/Check" /t REG_SZ /d "1556945764170" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "active/Feeder" /t REG_SZ /d "0" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "display/Method" /t REG_SZ /d "/A/L/L" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "show/Scan/Stats" /t REG_SZ /d "true" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "ask/Scan/Confirmation" /t REG_SZ /d "true" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "window/Maximized" /t REG_SZ /d "false" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "details/Width" /t REG_SZ /d "300" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "details/Height" /t REG_SZ /d "200" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "favorites" /t REG_SZ /d "" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "openers" /t REG_SZ /d "/Windows /Shares###////${fetcher.ip}@@@0@@@###/Web /Browser###http:\\${fetcher.hostname}\@@@0@@@###/F/T/P###ftp:\\${fetcher.hostname}\@@@0@@@###/Telnet###telnet ${fetcher.ip}@@@1@@@###/Ping###ping ${fetcher.ip}@@@1@@@###/Trace route###tracert ${fetcher.ip}@@@1@@@###/Geo locate###http:\\www.angryip.org\iplocate.php?ip=${fetcher.ip}@@@0@@@###/E-mail sample###mailto:somebody@example.com?subject=${fetcher.ip} (${fetcher.hostname})@@@1@@@" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "window/Width" /t REG_SZ /d "1187" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "window/Height" /t REG_SZ /d "691" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "column/Width.fetcher.hostname" /t REG_SZ /d "173" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "selected/Fetchers" /t REG_SZ /d "fetcher.ip###fetcher.ping###fetcher.hostname###fetcher.ports###fetcher.mac###fetcher.mac.vendor###fetcher.netbios" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "column/Width.fetcher.mac.vendor" /t REG_SZ /d "148" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "column/Width.fetcher.mac" /t REG_SZ /d "151" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "column/Width.fetcher.web/Detect" /t REG_SZ /d "153" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "column/Width.fetcher.ports.filtered" /t REG_SZ /d "90" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan" /v "column/Width.fetcher.netbios" /t REG_SZ /d "263" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan\comments" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan\http/Sender" /f
Reg add "HKCU\Software\JavaSoft\Prefs\ipscan\web/Detect" /f

از انجایی که در این مطلب در مورد اجرای برنامه با Java پرتابل نوشتم این دستورات را با دستور اجرای جاوا به صورت پرتابل ترکیب میکنم در نتیجه در هر بار اجرا فایل اسکریپت علاوه با اجرا برنامه بدون نیاز به نصب جاوا کلید‌های ریجستری هم به ویندوز اضافه میشود

 

 

درباره نوع داده در ریجستری

String Value: ‌اطلاعات متنی و قابل خواندن یک خطی هستند که از نمونه بارز آن‌ها، می‌توان به مسیر پوشه‌ها و فایل‌ها اشاره کرد. این مقادیر از جمله گونه‌هایی هستند که در رجیستری به وفور مورد استفاده قرار می‌گیرند.

Binary Value: همان گونه که از نام آن بر‌می‌آید، این مقادیر تنها از داده‌های باینری (صفر و یک) تشکیل شده‌اند و معمولا برای خاموش یا روشن کردن (فعال و غیر فعال کردن) تنظیمات به کار می‌روند.

DWORD Value (32-bit): این مقادیر دقیقا مشابه مقادیر باینری بوده، ولی در عین حال، قادر به ذخیره مقادیری از نوع Integer در دامنه ۳۲ بیت هستند. این مقادیر برای کار با سیستم‌های ۳۲ بیتی طراحی شده‌اند؛ هر چند می‌توان از آن‌ها برای سیستم‌های ۶۴ بیتی در حالت Backward نیز استفاده کرد.

QWORD Value (64-bit): دقیقا مشابه DWORD بوده اما محدوده ذخیره‌سازی داده‌های Integer در آن‌ها ۶۴ بیت است‌ و مسلما برای کار با سیستم‌های ۶۴ بیتی طراحی شده‌اند.

Multi-String Value: اگر مقادیر String برای ذخیره یک خط اطلاعات متنی بودند، این نوع مقادیر قادر به ذخیره چند خط اطلاعات متنی هستند.

Expandable String Value: دقیقا مشابه مقادیر String بوده، ولی قادر به ذخیره متغیرهای محیطی نیز هستند. برنامه نویسان با این متغیرها به خوبی آشنایی دارند.

خروج از نسخه موبایل