كيف يمكنني إضافة متعدد REG_SZ سلسلة على التسجيل من سطر الأوامر ؟

StackOverflow https://stackoverflow.com/questions/153879

  •  03-07-2019
  •  | 
  •  

سؤال

كجزء من بناء الإعداد على جهاز ويندوز أنا بحاجة إلى إضافة إدخال التسجيل و أود أن تفعل ذلك من ملف دفعي.

دخول طرف ثالث التطبيق حتى شكل ثابت.

دخول يأخذ شكل REG_SZ سلسلة ولكن يجب أن تحتوي على أسطر ie.0xOA أحرف فواصل.

لقد ضرب عدد قليل من المشاكل.

أول محاولة استخدام regedit لتحميل ولدت .reg.هذا فشل كما أنه لا يبدو مثل أي إما سلاسل طويلة أو سلاسل مع أسطر.اكتشفت أن تصدير يعمل بشكل جيد استيراد فشل.كنت قادرا على اختبار تصدير طرف ثالث التطبيق يضيف إدخالات مشابهة مباشرة من خلال win32 api.

الثاني محاولة استخدام الأمر REG ADD ولكن أنا لا يمكن العثور على أي حال لإضافة حرف السطر الجديد كل ما أحاول فقط ينتهي مع حرفية string إضافتها.

هل كانت مفيدة؟

المحلول

يمكنك إنشاء VBScript(.vbs) الملف فقط الاتصال من ملف دفعي ، على افتراض كنت تفعل أشياء أخرى في دفعة أخرى من هذا التغيير التسجيل.في vbscript يمكنك أن تبحث في شيء ما مثل:

set WSHShell = CreateObject("WScript.Shell")  
WSHShell.RegWrite "HKEY_LOCAL_MACHINE\SOMEKEY", "value", "type"

يجب أن تكون قادرة على العثور على نوع ممكن القيم باستخدام جوجل.

نصائح أخرى

إذا كنت غير مقيدة إلى لغة البرمجة, يمكنك أن تفعل ذلك في C# مع

Registry.CurrentUser.OpenSubKey(@"software\classes\something", true).SetValue("some key", "sometext\nothertext", RegistryValueKind.String);

يمكنك استيراد متعدد REG_SZ السلاسل التي تحتوي على إرجاع (CR) آلية (LF) في نهاية سطر (موسوعة الحياة) فواصل إلى التسجيل باستخدام .ريج الملفات طالما كنت لا تمانع في ترجمة النص كما UTF-16LE الست عشري ترميز البيانات.إلى استيراد REG_SZ مع هذا النص:

1st Line
2nd Line

يمكنك إنشاء ملف يسمى MULTILINETEXT.REG الذي يحتوي على هذا:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Environment]
"MULTILINETEXT"=hex(1):31,00,73,00,74,00,20,00,4c,00,69,00,6e,00,65,00,0d,00,0a,00,\
32,00,6e,00,64,00,20,00,4c,00,69,00,6e,00,65,00,0d,00,0a,00,\
00,00

ترميز ASCII إلى UTF-16LE ، ببساطة إضافة بايت فارغة بعد كل رمز ASCII القيمة.REG_SZ القيم يجب إنهاء مع حرف null (,00,00) في UTF-16LE التدوين.

استيراد تغيير التسجيل في الملف الدفعي REG.EXE IMPORT MULTILINETEXT.REG.

على سبيل المثال يستخدم البيئة الرئيسية لأنها مريحة ، ليس لأنها مفيدة بشكل خاص إلى إضافة هذه البيانات إلى متغيرات البيئة.يمكن للمرء أن استخدام RegEdit للتحقق من أن المستوردة REG_SZ البيانات يحتوي على أحرف CRLF.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top