متغيرات البيئة

متغيرات البيئة هي قيم يحددها المستخدم وتؤثر على سلوك العمليات الجارية على الحاسوب. تُعد متغيرات البيئة جزءًا من بيئة تشغيل العملية. على سبيل المثال، يمكن لعملية جارية الاستعلام عن قيمة متغير البيئة TEMP لاكتشاف موقع مناسب لتخزين الملفات المؤقتة ، أو عن متغيري HOME أو USERPROFILE للعثور على بنية الدليل الخاصة بالمستخدم الذي يُشغّل العملية.

تم تقديمها بشكلها الحديث عام 1979 مع نظام يونكس الإصدار 7 ، لذا فهي مُضمنة في جميع إصدارات أنظمة تشغيل يونكس منذ ذلك الحين، بما في ذلك لينكس وماك أو إس . ومنذ نظام التشغيل بي سي دوس 2.0 عام 1982، أصبحت هذه الميزة مُضمنة في جميع أنظمة تشغيل مايكروسوفت اللاحقة ، بما في ذلك مايكروسوفت ويندوز و OS/2 ، وإن كان ذلك بصيغة واستخدام وأسماء متغيرات قياسية مختلفة بعض الشيء.

تصميم

في جميع أنظمة يونكس والأنظمة الشبيهة بيونكس ، وكذلك في ويندوز، لكل عملية مجموعة خاصة بها من متغيرات البيئة . افتراضيًا، عند إنشاء عملية، ترث بيئة تشغيل مكررة من بيئة العملية الأصلية، باستثناء التغييرات الصريحة التي تُجريها العملية الأصلية عند إنشاء العملية الفرعية. على مستوى واجهة برمجة التطبيقات (API) ، يجب إجراء هذه التغييرات بين وقت تشغيل العملية الأصلية forkووقت إنشاء العملية الفرعية exec. بدلاً من ذلك، من خلال واجهات سطر الأوامر مثل باش ، يمكن للمستخدم تغيير متغيرات البيئة لاستدعاء أمر معين عن طريق استدعائه بشكل غير مباشر باستخدام الأمر `bash` envأو ` bash`. يمكن للبرنامج قيد التشغيل الوصول إلى قيم متغيرات البيئة لأغراض التهيئة.ENVIRONMENT_VARIABLE=VALUE <command>

تستخدم البرامج النصية وملفات الدفعات متغيرات البيئة لنقل البيانات والإعدادات إلى العمليات الفرعية . كما يمكن استخدامها لتخزين قيم مؤقتة للرجوع إليها لاحقًا في البرنامج النصي. مع ذلك، في أنظمة يونكس، يُفضّل استخدام المتغيرات غير المُصدّرة لهذا الغرض لأنها لا تتسرب خارج العملية.

في نظام يونكس، يؤثر تغيير متغير بيئي في نص برمجي أو برنامج مُجمَّع على تلك العملية فقط، وربما على العمليات الفرعية. أما العملية الأصلية وأي عمليات أخرى غير مرتبطة بها، فلا تتأثر. وبالمثل، فإن تغيير قيمة متغير أو حذفها داخل ملف دفعي في نظام DOS أو Windows سيؤدي إلى تغيير قيمة المتغير طوال مدة وجود الملف COMMAND.COMأو الملف، على التوالي.CMD.EXE

في أنظمة يونكس، تُهيأ متغيرات البيئة عادةً أثناء بدء تشغيل النظام بواسطة نصوص بدء التشغيل ، وبالتالي ترثها جميع العمليات الأخرى في النظام. ويمكن للمستخدمين، وكثيرًا ما يفعلون، تعديلها في ملف تعريف واجهة سطر الأوامر التي يستخدمونها. أما في أنظمة مايكروسوفت ويندوز، فتُخزن القيمة الافتراضية لكل متغير بيئة في سجل ويندوز أو تُحدد في AUTOEXEC.BATملف الإعدادات.

في أنظمة يونكس ، يُمنح برنامج setuid بيئة يختارها مُستدعيه، لكنه يعمل بصلاحيات مختلفة عن صلاحيات المُستدعي. عادةً ما يقوم الرابط الديناميكي بتحميل التعليمات البرمجية من المواقع المُحددة بواسطة متغيرات البيئة $LD_LIBRARY_PATHوتشغيلها $LD_PRELOADبصلاحيات العملية. إذا قام برنامج setuid بذلك، فسيكون غير آمن، لأن مُستدعيه قد يتمكن من تشغيل تعليمات برمجية عشوائية وبالتالي إساءة استخدام صلاحياته. لهذا السبب، تقوم مكتبة libc بإلغاء تعيين متغيرات البيئة هذه عند بدء التشغيل في عملية setuid. عادةً ما تقوم برامج setuid بإلغاء تعيين متغيرات البيئة غير المعروفة والتحقق من المتغيرات الأخرى أو تعيينها إلى قيم مناسبة.

بشكل عام، تعمل مجموعة متغيرات البيئة كمصفوفة ترابطية حيث تكون كل من المفاتيح والقيم عبارة عن سلاسل نصية. يختلف تفسير الأحرف في أي من السلسلتين بين الأنظمة. عند الحاجة إلى تمثيل هياكل البيانات مثل القوائم، من الشائع استخدام قائمة مفصولة بنقطتين رأسيتين (شائعة في أنظمة يونكس وما يشبهها) أو قائمة مفصولة بفاصلة منقوطة (شائعة في أنظمة ويندوز ودوس).

بناء الجملة

يمكن استخدام المتغيرات في كل من البرامج النصية وفي سطر الأوامر . وعادةً ما تتم الإشارة إليها بوضع رموز خاصة أمام اسم المتغير أو حوله.

جرت العادة على كتابة أسماء متغيرات البيئة بأحرف كبيرة. يساعد هذا في تمييزها بوضوح عن المتغيرات والمعرفات الأخرى المستخدمة في أكواد البرمجة. مع ذلك، تجدر الإشارة إلى أن حساسية حالة الأحرف في أسماء متغيرات البيئة تختلف بين أنظمة التشغيل. فأنظمة التشغيل الشبيهة بنظام يونكس حساسة لحالة الأحرف في أسماء متغيرات البيئة، بينما أنظمة DOS وOS/2 وويندوز غير حساسة لها.

يونكس

في معظم أنظمة يونكس والأنظمة الشبيهة بها ، يتم استرجاع قيمة متغير البيئة بوضع $علامة قبل اسم المتغير. ويمكن أيضاً، عند الضرورة، وضع الاسم بين قوسين معقوفين.

لعرض دليل المستخدم الرئيسي، يمكن للمستخدم كتابة ما يلي:

echo $HOME

في أنظمة يونكس والأنظمة الشبيهة بيونكس، تكون أسماء متغيرات البيئة حساسة لحالة الأحرف.

يعرض هذا الأمر envجميع متغيرات البيئة وقيمها. printenvكما يمكن استخدامه لعرض متغير واحد فقط، وذلك بتحديد اسم ذلك المتغير كوسيط وحيد للأمر.

DOS و OS/2 و Windows

في مترجمات سطر الأوامر لأنظمة DOS و OS/2 و Windows مثل COMMAND.COMو CMD.EXE، يتم استرداد متغير البيئة عن طريق وضع %علامة قبله وبعده.

في مترجمات سطر الأوامر لأنظمة DOS و OS/2 و Windows بالإضافة إلى واجهة برمجة التطبيقات الخاصة بها ، لا يتم التمييز بين الأحرف الكبيرة والصغيرة لأسماء متغيرات البيئة.

يحتوي متغير البيئة المسمى على HOMEDRIVEحرف محرك الأقراص (بالإضافة إلى النقطتين الرأسيتين الأخيرتين :) لدليل المستخدم الرئيسي، بينما HOMEPATHيحتوي على المسار الكامل لدليل المستخدم الرئيسي داخل محرك الأقراص هذا.

لذا، لعرض محرك الأقراص الرئيسي والمسار، يمكن للمستخدم كتابة ما يلي:

ECHO %HOMEDRIVE%%HOMEPATH%

يعرض الأمر SET(بدون وسائط) جميع متغيرات البيئة وقيمها. في نظام التشغيل Windows NT والإصدارات الأحدث، setيمكن استخدامه أيضًا لعرض جميع المتغيرات التي يبدأ اسمها ببادئة معينة، وذلك بتحديد البادئة كوسيط وحيد للأمر.

في ويندوز باور شيل ، يمكن للمستخدم كتابة ما يلي:

"$Env:HomeDrive$Env:HomePath"

أو أحد البدائل المتكررة التالية:

اكتب-الإخراج "$Env:HomeDrive$Env:HomePath" صدى "$Env:HomeDrive$Env:HomePath" اكتب "$Env:HomeDrive$Env:HomePath" إرجاع "$Env:HomeDrive$Env:HomePath" اكتب-المضيف "$Env:HomeDrive$Env:HomePath"

في PowerShell، لا يتم التمييز بين الأحرف الكبيرة والصغيرة في أسماء متغيرات البيئة.

يعرض الأمر التالي جميع متغيرات البيئة وقيمها:

Get-ChildItem env :

المهمة: يونكس

envيمكن استخدام الأوامر setلتعيين متغيرات البيئة وغالبًا ما يتم دمجها مباشرة في الصدفة.

يمكن أيضًا استخدام الأوامر التالية، ولكنها غالبًا ما تعتمد على نوع معين من الصدفة.

المتغير = القيمة # (يجب عدم وجود مسافات حول علامة المساواة) تصدير المتغير # لـ Bourne والأصداف ذات الصلة
تصدير المتغير = القيمة # لـ ksh و bash والأصداف ذات الصلة
setenv VARIABLE value # لـ csh والأصداف ذات الصلة

تحكم بعض المبادئ البسيطة كيفية تأثير المتغيرات البيئية.

تكون متغيرات البيئة خاصة بالعملية التي تم تعيينها فيها. إذا تم تشغيل عمليتين من نوع shell، وتم تغيير قيمة متغير بيئة في إحداهما، فلن ترى العملية الأخرى هذا التغيير.

When a child process is created, it inherits all the environment variables and their values from the parent process. Usually, when a program calls another program, it first creates a child process by forking, then the child adjusts the environment as needed and lastly the child replaces itself with the program to be called. This procedure gives the calling program control over the environment of the called program.

In Unix shells, variables may be assigned without the export keyword. Variables defined in this way are displayed by the set command, but are not true environment variables, as they are stored only by the shell and are unknown to all other processes. The printenv command will not display them, and child processes do not inherit them.

VARIABLE=value

The prefix syntax exports a "true" environment variable to a child process without affecting the current process:[1]

VARIABLE=value program_name [arguments]

The persistence of an environment variable can be session-wide or system-wide.

unset is a builtin command implemented by both the Bourne shell family (sh, ksh, bash, etc.) and the C shell family (csh, tcsh, etc.) of Unix command line shells. It unsets a shell variable, removing it from memory and the shell's exported environment. It is implemented as a shell builtin, because it directly manipulates the internals of the shell.[2][3] Read-only shell variables cannot be unset. If one tries to unset a read-only variable, the unset command will print an error message and return a non-zero exit code.

Assignment: DOS, OS/2 and Windows

In DOS, OS/2 and Windows command-line interpreters such as COMMAND.COM and CMD.EXE, the SET command is used to assign environment variables and values using the following arguments:

SETVARIABLE=value 

An environment variable is removed via:

SETVARIABLE=

The SET command without any arguments displays all environment variables along with their values; SET " ", zero or more spaces, will include internal variables too. In CMD.EXE, it is possible to assign local variables that will not be global using the SETLOCAL command and ENDLOCAL to restore the environment.

Use the switch/? to display the internal documentation, or use the viewerhelp:

SET/? HELP SET SETLOCAL /? HELP SETLOCAL 

في PowerShell ، يتبع التعيين صيغة مشابهة لصيغة Unix:

$env:VARIABLE = "VALUE"

الواجب: PHP

في لغة PHP،putenv() يجب استخدام الدالة . [ 4 ] [ 5 ]

putenv ( "VARIABLE_NAME" = "VALUE" );

أمثلة

تتضمن أمثلة متغيرات البيئة ما يلي:

  • PATHقائمة بمسارات الدليل. عندما يكتب المستخدم أمرًا دون تقديم المسار الكامل، يتم فحص هذه القائمة لمعرفة ما إذا كانت تحتوي على مسار يؤدي إلى الأمر.
  • HOME( يشبه نظام يونكس ) و (مايكروسوفت ويندوز): يشيران إلى مكان وجود دليلUSERPROFILE المستخدم الرئيسي في نظام الملفات .
  • HOME/{.AppName}( أنظمة شبيهة بنظام يونكس ) و APPDATA\{DeveloperName\AppName}(مايكروسوفت ويندوز): لتخزين إعدادات التطبيق. تستخدم العديد من التطبيقات بشكل خاطئ USERPROFILEإعدادات التطبيق في ويندوز: USERPROFILEيجب استخدامها فقط في مربعات الحوار التي تسمح للمستخدم بالاختيار بين مسارات مثل Documents/Pictures/Downloads/Music؛ لأغراض البرمجة، APPDATA(لإعدادات التطبيق المتنقلة المشتركة عبر أجهزة متعددة)، LOCALAPPDATAأو (لإعدادات التطبيق المحلية) أو PROGRAMDATA(لإعدادات التطبيق المشتركة بين مستخدمي أنظمة تشغيل متعددة). [ 6 ]
  • TERM( شبيه بنظام يونكس ): يحدد نوع طرفية الكمبيوتر أو محاكي الطرفية المستخدم (على سبيل المثال، vt100أو dumb).
  • PS1( شبيه بنظام يونكس ): يحدد كيفية عرض موجه الأوامر في Bourne shell والمتغيرات المختلفة.
  • MAIL( شبيه بنظام يونكس ): يستخدم للإشارة إلى مكان وجود بريد المستخدم.
  • TEMP: الموقع الذي يمكن للعمليات فيه تخزين الملفات المؤقتة.

متغيرات البيئة الحقيقية

يونكس

$PATH
يحتوي على قائمة مفصولة بنقطتين رأسيتين للمجلدات التي يبحث فيها النظام عن الأوامر التي لا تحتوي أسماؤها على شرطة مائلة (تُفسَّر الأوامر التي تحتوي على شرطات مائلة على أنها أسماء ملفات للتنفيذ، ويحاول النظام تنفيذ الملفات مباشرةً). وهو يُعادل متغير DOS و OS/2 و Windows%PATH% .
$HOME
يحتوي على موقع مجلد المستخدم الرئيسي . على الرغم من إمكانية معرفة مجلد المستخدم الرئيسي الحالي باستخدام دوال C ، getpwuidإلا أنه يُستخدم غالبًا لتسهيل العمل في مختلف البرامج النصية (وغيرها من السياقات). كما يتيح استخدام متغير البيئة للمستخدم إمكانية الإشارة إلى مجلد آخر.getuid$HOME
$PWD
يشير هذا المتغير إلى المجلد الحالي. وهو ما يعادل ناتج الأمر pwd عند استدعائه بدون وسائط.
$DISPLAY
يحتوي على مُعرّف الشاشة التي يجب أن تستخدمها برامج X11 افتراضيًا.
$LD_LIBRARY_PATH
في العديد من أنظمة Unix التي تحتوي على رابط ديناميكي ، يحتوي على قائمة مفصولة بنقطتين رأسيتين من الدلائل التي يجب على الرابط الديناميكي البحث فيها عن الكائنات المشتركة عند إنشاء صورة عملية بعد ذلك exec، قبل البحث في أي دلائل أخرى.
$LIBPATHأو$SHLIB_PATH
بدائل لما $LD_LIBRARY_PATHكان يُستخدم عادةً في إصدارات يونكس القديمة.
$LANG, $LC_ALL, $LC_...
$LANGيُستخدم لتعيين اللغة الافتراضية . على سبيل المثال، إذا كانت قيم اللغة هي pt_BR، فسيتم تعيين اللغة إلى البرتغالية البرازيلية، وسيتم تطبيق الممارسات البرازيلية عند الاقتضاء. يتم التحكم في جوانب مختلفة من التوطين بواسطة $LC_متغيرات فردية ( $LC_CTYPE، ، إلخ). يمكن استخدام لفرض نفس اللغة لجميع الجوانب.$LC_COLLATE$LC_DATE$LC_ALL
$TZ
يشير إلى المنطقة الزمنية . يمكن أن يكون ذلك بعدة صيغ، إما بتحديد المنطقة الزمنية نفسها أو بالإشارة إلى ملف (في /usr/share/zoneinfo).
$BROWSER
يحتوي هذا الملف على قائمة مفصولة بنقطتين رأسيتين لتفضيلات متصفح الويب الخاص بالمستخدم ، لاستخدامها من قِبل البرامج التي تحتاج إلى تمكين المستخدم من عرض المحتوى على عنوان URL . يُفترض تجربة المتصفحات في القائمة من الأول إلى الأخير، والتوقف بعد أول متصفح ينجح. يتيح هذا الترتيب إمكانية التبديل بين المتصفحات في بيئات مختلفة، على سبيل المثال، في بيئة X11 ، يمكن استخدام متصفح رسومي (مثل Firefox )، بينما في بيئة سطر الأوامر ، يمكن استخدام متصفح طرفي (مثل Lynx%s ). قد يوجد رمز مميز لتحديد مكان وضع عنوان URL؛ وإلا، فسيتم تشغيل المتصفح مع عنوان URL كمعامل أول. [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ]

دوس

في نظام DOS، تُوفّر بيئة التشغيل الرئيسية بواسطة معالج الأوامر الأساسي، الذي يرث بيئة التشغيل المُسبقة المُعرّفة CONFIG.SYSعند تحميله لأول مرة. يُمكن ضبط حجمها عبر COMMAND /E:nالمُعامل بين 160 [ 12 ] و32767 [ 12 ] بايت. عادةً ما يتم تقليص أجزاء بيئة التشغيل المحلية الموروثة إلى العمليات الفرعية إلى حجم محتوياتها. تسمح بعض معالجات سطر الأوامر (مثل 4DOS ) بتحديد الحد الأدنى من مساحة بيئة التشغيل الحرة المُتاحة عند تشغيل واجهات سطر الأوامر الثانوية. [ 12 ] بينما يبقى محتوى متغيرات بيئة التشغيل دون تغيير عند التخزين، %يتم تحويل أسمائها (بدون علامة الاقتباس المفردة "") دائمًا إلى أحرف كبيرة، باستثناء متغيرات بيئة التشغيل المُسبقة المُعرّفة عبر CONFIG.SYSالتوجيه SETفي DR-DOS 6.0 والإصدارات الأحدث [ 13 ] [ 14 ] (وفقط مع SWITCHES=/L(للسماح بأسماء الأحرف الصغيرة) في DR-DOS 7.02 والإصدارات الأحدث). [ 12 ] [ 15 ] من حيث المبدأ، يدعم نظام MS-DOS 7.0%windir% والإصدارات الأحدث أسماء المتغيرات الصغيرة ( )، ولكنه لا يوفر للمستخدم أي وسيلة لتعريفها. تُخزَّن أسماء متغيرات البيئة التي تحتوي على أحرف صغيرة في البيئة تمامًا مثل متغيرات البيئة العادية، ولكنها تظل غير مرئية لمعظم برامج DOS، لأنها مصممة لتوقع متغيرات بأحرف كبيرة فقط. [ 12 ] [ 13 ] [ 14 ] تحدد بعض معالجات الأوامر الحد الأقصى لطول اسم المتغير بـ 80 حرفًا. [ 12 ] في حين أن الحد الرئيسي هو حجم مقطع البيئة ، فإن بعض برامج DOS وWindows ذات 16 بت [ 12 ] [ ملاحظة 1 ] لا تتوقع أن يتجاوز محتوى متغيرات البيئة 128 حرفًا. COMMAND.COMيدعم DR-DOS متغيرات بيئة يصل طولها إلى 255 حرفًا ، ويدعم 4DOS متغيرات بيئة يصل طولها إلى 512 حرفًا. [ 12 ] بما أنه COMMAND.COMيمكن تهيئتها (عبر/L:128..1024لدعم أوامر سطر الأوامر التي تصل إلى 1024 حرفًا داخليًا في نظام MS-DOS 7.0 والإصدارات الأحدث، يُتوقع أن تحتوي متغيرات البيئة على 1024 حرفًا على الأقل أيضًا. في بعض إصدارات DR-DOS، يمكن تقليص أو نقل بيئة التشغيل المُمرَّرة إلى برامج التشغيل، والتي غالبًا لا تحتاج إليها بعد التثبيت، من خلال SETENVالخيارات INSTALL[HIGH]( بيئة فارغة)، (محرك أقراص بديل، على سبيل المثال ) LOADHIGH، و (نقل بيئة التشغيل فوق البرنامج) لتقليل حجم الذاكرة المُستخدمة فعليًا لبرنامج التشغيل . [ 16 ] [ 15 ] [ 13 ] [ 17 ] [ 18 ] [ 19 ]/Z/D[:loaddrive]B:TSR.COM/E

في وضع المعالجة الدفعية، يتم استبدال متغيرات البيئة غير الموجودة بسلسلة نصية طولها صفر.

تشمل متغيرات البيئة القياسية أو متغيرات البيئة المحجوزة ما يلي :

%APPEND%(مدعوم منذ نظام التشغيل DOS 3.3)
يحتوي هذا المتغير على قائمة مفصولة بفواصل منقوطة للمجلدات التي يُبحث فيها عن الملفات. عادةً ما يتم تغييره باستخدام APPEND /Eالأمر، الذي يضمن أيضًا تحويل أسماء المجلدات إلى أحرف كبيرة. في الواقع، تتوقع بعض برامج DOS تخزين الأسماء بأحرف كبيرة وألا يتجاوز طول القائمة 121 حرفًا ، لذا يُفضل عدم تعديل المتغير باستخدام SETالأمر. يجب عدم وضع أسماء الملفات الطويلة التي تحتوي على مسافات أو أحرف خاصة أخرى بين علامتي اقتباس" .
%CONFIG%(مدعوم منذ MS-DOS 6.0 و PC DOS 6.1 ، ومدعوم أيضًا بواسطة ROM-DOS [ 20 ] )
يحتوي هذا المتغير على الاسم الرمزي لإعدادات الإقلاع المختارة حاليًا. يتم تعيينه بواسطة نظام BIOS الخاص بنظام DOS ( IO.SYSمثل `< IBMBIO.COMsystem.web>`, `<system.web>`, `<system.web>`, إلخ) إلى الاسم المحدد بواسطة CONFIG.SYSالتوجيه المقابل MENUITEMقبل تشغيل معالج الأوامر الرئيسي. يتمثل الغرض الرئيسي منه في السماح بحالات خاصة إضافية في `<system.web>` AUTOEXEC.BATووظائف الدفعات المماثلة، وذلك اعتمادًا على الخيار المحدد عند بدء التشغيل. يمكن محاكاة ذلك في نظام DR-DOS باستخدام CONFIG.SYSتوجيه SETمشابه لـ `< system.web SET CONFIG=1>`.
%CMDLINE%(تم تقديمه مع نظام التشغيل 4DOS ، وهو مدعوم أيضًا منذ نظام التشغيل MS-DOS 7.0 )
This variable contains the fully expanded text of the currently executing command line. It can be read by applications to detect the usage of and retrieve long command lines, since the traditional method to retrieve the command line arguments through the PSP (or related API functions) is limited to 126 characters and is no longer available when FCBs get expanded or the default DTA is used. While 4DOS supports longer command lines, COMMAND.COM still only supports a maximum of 126 characters at the prompt by default (unless overridden with /U:128..255 to specify the size of the command line buffer), but nevertheless internal command lines can become longer through f.e. variable expansion (depending on /L:128..1024 to specify the size of the internal buffer). In addition to the command-line length byte in the PSP, the PSP command line is normally limited by ASCII-13, and command lines longer than 126 characters will typically be truncated by having an ASCII-13 inserted at position 127,[14] but this cannot be relied upon in all scenarios.[14][nb 2] The variable will be suppressed for external commands invoked with a preceding @-symbol like in @XCOPY ... for backward compatibility and in order to minimize the size of the environment when loading non-relocating terminate-and-stay-resident programs. Some beta versions of Windows Chicago used %CMDLINE% to store only the remainder of the command line excessing 126 characters instead of the complete command line.[13][14]
%COMSPEC% (supported since DOS 2.0)
This variable contains the full 8.3 path to the command processor, typically C:\COMMAND.COM or C:\DOS\COMMAND.COM. It must not contain long filenames, but under DR-DOS it may contain file and directory passwords. It is set up by the primary command processor to point to itself (typically reflecting the settings of the CONFIG.SYS directive SHELL), so that the resident portion of the command processor can reload its transient portion from disk after the execution of larger programs. The value can be changed at runtime to reflect changes in the configuration, which would require the command processor to reload itself from other locations. The variable is also used when launching secondary shells.
%COPYCMD% (supported since MS-DOS 6.2 and PC DOS 6.3, also supported by ROM-DOS[20])
Allows a user to specify the /Y switch (to assume "Yes" on queries) as the default for the COPY, XCOPY, and MOVE commands. A default of /Y can be overridden by supplying the /-Y switch on the command line. The /Y switch instructs the command to replace existing files without prompting for confirmation.
%DIRCMD% (supported since MS-DOS 5.0 and PC DOS 5.0, also supported by ROM-DOS[20])
Allows a user to specify customized default parameters for the DIR command, including file specifications. Preset default switches can be overridden by providing the negative switch on the command line. For example, if %DIRCMD% contains the /W switch, then it can be overridden by using DIR /-W at the command line. This is similar to the environment variable %$DIR% under DOS Plus[21] and a facility to define default switches for DIR through its /C or /R switches under DR-DOSCOMMAND.COM.[13]%DIRCMD% is also supported by the external SDIR.COM/DIR.COMStacker commands under Novell DOS 7 and higher.[13]
%LANG% (supported since MS-DOS 7.0)
This variable is supported by some tools to switch the locale for messages in multilingual issues.
%LANGSPEC% (supported since MS-DOS 7.0)
This variable is supported by some tools to switch the locale for messages in multilingual issues.
%NO_SEP% (supported since PC DOS 6.3 and DR-DOS 7.07)
This variable controls the display of thousands-separators in messages of various commands. Issued by default, they can be suppressed by specifying SET NO_SEP=ON or SET NO_SEP=1 under PC DOS. DR-DOS additionally allows to override the system's thousands-separator displayed as in f.e. SET NO_SEP=..[12]
%PATH% (supported since DOS 2.0)
يحتوي هذا المتغير على قائمة مفصولة بفواصل منقوطة من الدلائل التي سيبحث فيها مُفسِّر الأوامر عن الملفات القابلة للتنفيذ . وهو مُكافئ لمتغير Unix $PATH(لكن بعض تطبيقات DOS وWindows تستخدم القائمة أيضًا للبحث عن ملفات البيانات بشكل مشابه لما هو موجود $LD_LIBRARY_PATHفي أنظمة شبيهة بـ Unix). عادةً ما يتم تغييره عبر الأمر PATH(أو PATH /Eفي MS-DOS 6.0 ) ، والذي يضمن أيضًا تحويل أسماء الدلائل إلى أحرف كبيرة. تتوقع بعض برامج DOS تخزين الأسماء بأحرف كبيرة وألا يتجاوز طول القائمة 123 حرفًا ، لذلك يُفضَّل عدم تعديل المتغير عبر الأمر. يجب عدم وضع أسماء الملفات الطويلة التي تحتوي على مسافات أو أحرف خاصة أخرى بين علامتي اقتباس . بشكل افتراضي ، يتم البحث في الدليل الحالي أولًا، لكن بعض معالجات سطر الأوامر مثل 4DOS تسمح بتضمين " " (اختصارًا لـ " الدليل الحالي " ) في القائمة أيضًا لتجاوز ترتيب البحث هذا؛ بعض برامج DOS غير متوافقة مع هذا الامتداد.SET".
%PROMPT%(مدعوم منذ نظام التشغيل DOS 2.0)
يحتوي هذا المتغير على $سلسلة مُجزأة تُحدد عرض موجه الأوامر . وعادةً ما يتم تغييره عبر PROMPTالأمر.
%TEMP%%TMP%)
تحتوي هذه المتغيرات على مسار المجلد الذي يجب تخزين الملفات المؤقتة%TEMP% فيه. تستخدم أدوات نظام التشغيل عادةً هذا المسار فقط ، بينما تستخدم برامج الطرف الثالث هذا المسار أيضًا %TMP%. وعادةً ما %TEMP%يكون لهذا المسار الأولوية على المسار الآخر %TMP%.

تدعم عائلة DR-DOS عددًا من متغيرات البيئة القياسية الإضافية ، بما في ذلك:

%BETA%
يحتوي هذا المتغير على رسالة اختيارية تعرضها بعض الإصدارات (بما في ذلك DR DOS 3.41 ) COMMAND.COMعند بدء تشغيل الأغلفة الثانوية. [ 22 ]
%DRDOSCFG%/ %NWDOSCFG%/%OPENDOSCFG%
يحتوي هذا المتغير على الدليل [ 23 ] (بدون علامة اقتباس " \") حيث يتم البحث عن .INIملفات .CFGالتكوين (أي ملفات خاصة بتطبيقات DR-DOS مثل TASKMGR.INI، ، TASKMAX.INI، إلخ VIEWMAX.INI، FASTBACK.CFGأو ملفات خاصة بالفئات مثل COLORS.INI، أو ملفات عامة مثل DRDOS.INI، NWDOS.INI، OPENDOS.INI، أو ) ، DOS.INIكما تستخدمها أوامر INSTALLو SETUPوبرامج DR-DOS المختلفة مثل DISKOPT، DOSBOOK، EDIT، ، FBX، FILELINK، / LOCK، ، ، ، ، أو . [ 13 ] يجب ألا يحتوي على أسماء ملفات طويلة .SECURITY.OVLNWLOGIN.EXESERNOTASKMAXTASKMGRVIEWMAXUNDELETE
%DRCOMSPEC%
يُمكن لهذا المتغير أن يحتوي على مسار بديل لمعالج الأوامر، وله الأولوية على المسار المُحدد فيه %COMSPEC%، مع إمكانية تضمين كلمات مرور الملفات والمجلدات . كما يُمكنه أن يحتوي على قيمة خاصة " " أو " " لفرض استخدام المتغير حتى في الحالات التي قد يُشير فيها إلى معالج سطر أوامر خاطئ، على سبيل المثال، عند تشغيل بعض إصدارات أمر DR-DOS على نظام تشغيل أجنبي. [ 24 ]ON1%COMSPEC%%COMSPEC%SYS
%DRSYS%
سيؤدي تعيين هذا المتغير إلى " ON" أو " 1" إلى إجبار بعض إصدارات أمر DR-DOS SYSعلى العمل تحت أنظمة تشغيل أجنبية بدلاً من عرض تحذير. [ 24 ]
%FBP_USER%
يحدد اسم المستخدم المستخدم بواسطة أمر FastBackFBX وملفات التكوين ضمن Novell DOS 7. [ 13 ]{user}.FB
%HOMEDIR%
قد يحتوي هذا المتغير على دليل المستخدم الرئيسي ضمن نظام DR-DOS (بما في ذلك DR-DOS 5.0 و 6.0 ). [ 13 ] [ 22 ]
%INFO%
في بعض إصدارات نظام DR-DOS، COMMAND.COMيُحدد هذا المتغير السلسلة النصية التي يعرضها $Iرمز الأمر PROMPT. [ 22 ] ويمكن استخدامه، على سبيل المثال، لإعلام المستخدم بكيفية الخروج من واجهات الأوامر الثانوية.
%LOGINNAME%
في بعض إصدارات نظام DR-DOS، COMMAND.COMيُحدد هذا المتغير اسم المستخدم الذي يعرضه $Uرمز الأمر PROMPT، كما هو مُعدّ بواسطة برامج تسجيل الدخول لـ Novell NetWare . [ 12 ] [ 13 ] [ 22 ] انظر أيضًا المتغير الوهمي الذي يحمل اسمًا مشابهًا %LOGIN_NAME%.
%MDOS_EXEC%
يمكن أن يأخذ هذا المتغير القيمتين " ON" أو " OFF" في نظام DOS متعدد المستخدمين . عند تفعيله، يسمح نظام التشغيل للتطبيقات بالوصول إلى واجهات ثانوية مع تحرير مساحة برنامج DOS (DPA) لتوفير أقصى قدر من ذاكرة DOS للتطبيقات الثانوية بدلاً من تشغيلها في نفس النطاق كما هو الحال في نظام DOS. [ 25 ] [ 26 ]
%NOCHAR%
يمكن استخدام هذا المتغير لتحديد الحرف الذي تعرضه بعض الأوامر في رسائلها عند الإجابة بـ "لا" في [Y,N]الاستعلامات، وبالتالي تجاوز الإعداد الافتراضي للنظام (عادةً " N" في النسخ الإنجليزية من DR-DOS). إذا احتوى المتغير على سلسلة نصية، فسيتم استخدام الحرف الأول فقط، بصيغة حرف كبير. تدعم بعض الأوامر أيضًا مُعاملًا في سطر الأوامر /Yلافتراض الإجابة "نعم" تلقائيًا في الاستعلامات، وبالتالي إخفاء هذه المطالبات. مع ذلك، إذا تم استخدام المُعامل /Y:ynلتحديد حرفي "نعم" و"لا" (وبالتالي تجاوز أي %NOCHAR%إعداد)، فلن يتم إخفاء الاستعلامات. انظر أيضًا CONFIG.SYSالتوجيه ذي الصلة NOCHARومتغير البيئة %YESCHAR%. [ 24 ]
%NOSOUND%
سيؤدي ضبط هذا المتغير على " ON" أو " 1" إلى تعطيل أصوات التنبيه الافتراضية الصادرة عن بعض أوامر DR-DOS في حالات معينة، مثل إعلام المستخدم بإتمام عملية ما، أو بضرورة تفاعل المستخدم، أو عند الضغط على مفتاح خاطئ. ستتجاوز خيارات سطر الأوامر التي تُمكّن أصوات تنبيه محددة هذا الإعداد.
%OS%
يحتوي هذا المتغير على اسم نظام التشغيل من أجل التمييز بين أنظمة التشغيل المختلفة المتعلقة بنظام DOS من أصل Digital Research في وظائف الدفعات والتطبيقات. [ 23 ] تتضمن القيم المعروفة " DOSPLUS" ( DOS Plus 1.2 في محاكاة DOS)، " CPCDOS 4.1" (DOS Plus 1.2 في محاكاة CP/MDRDOS )، " " ( DR DOS 3.31 - 6.0 ، DR DOS Panther ، DR DOS StarTrek ، DR-DOS 7.02 [ 23 ] - 7.05 )، " EZDOS" ( EZ-DOS) 3.41 )، " PALMDOS" و NetWare PalmDOS" ( PalDOS 1.0 )، " NWDOS" ( Novell DOS 7 )، " NWDOS7" (Novell DOS 7 Beta )، " OPENDOS" ( Caldera OpenDOS 7.01 ، Caldera DR-OpenDOS 7.02 )، " CDOS" ( DOS المتزامن ، DOS XM المتزامن )، " CPCDOS" ( المتزامن PC DOS )، " CDOS386" ( DOS 386 المتزامن) )، " DRMDOS" ( DR Multiuser DOS )، " MDOS" ( CCI Multiuser DOS[ 25 ] " IMSMDOS" ( IMS Multiuser DOS )، " REAL32" ( REAL/32 ). [ 13 ] [ 27 ] يبحث نظام MS-DOS INTERSVRعن قيمة " DRDOS" أيضًا. [ 27 ] انظر أيضًا متغير البيئة الذي يحمل نفس الاسم %OS%والذي تم تقديمه لاحقًا في عائلة Windows NT .
%PEXEC%
في بعض إصدارات نظام DR-DOS، يُحدد هذا المتغير الأمر الذي يُنفذه رمز $Xالأمر PROMPTقبل COMMAND.COMعرض موجه الأوامر بعد العودة من تنفيذ برنامج خارجي. [ 13 ] [ 23 ]
%SWITCHAR%
يُحدد هذا المتغير حرف التبديل (SwitChar) المستخدم لتحليل الوسائط بواسطة بعض أوامر DR-DOS. في حال تحديده، فإنه يُلغي إعداد حرف التبديل الحالي للنظام. الأحرف المقبولة هي فقط: " /" (نمط DOS)، و" -" (نمط Unix)، و" [" (نمط CP/M). راجع أيضًا CONFIG.SYSالتوجيه ذي الصلة SWITCHAR(لتعيين إعداد حرف التبديل للنظام) %/%ومتغير معلومات النظام في بعض إصدارات DR-DOS COMMAND.COM(لاسترداد الإعداد الحالي لمهام الدفعات المحمولة).
%TASKMGRWINDIR%
يحدد هذا المتغير الدليل الذي يوجد فيه نظام التشغيل WindowsSYSTEM.INI الذي سيستخدمه برنامج DR-DOS TASKMGRمتعدد المهام، متجاوزًا الإجراء الافتراضي لتحديد موقع الملف. [ 13 ]
%VER%
يحتوي هذا المتغير على إصدار نظام التشغيل لتمييز الإصدارات المختلفة من نظام DR-DOS في مهام المعالجة الدفعية وفي عرض الأمر VER. [ 23 ] كما يُستخدم أيضًا لرمز $Vالأمر PROMPTويؤثر على القيمة التي يُرجعها متغير معلومات النظام%OS_VERSION% . تتضمن القيم المعروفة " 1.0" ( PalmDOS 1.0 )، " 1.2" ( DOS Plus 1.2 في محاكاة DOS)، " 2.0" ( Concurrent DOS 386 2.0 )، " 3.0" ( Concurrent DOS 386 3.0 )، " 3.31" ( DR DOS 3.31 )، " 3.32" ( DR DOS 3.32 )، " 3.33" ( DR DOS 3.33 )، " 3.34" ( DR DOS 3.34 ), " 3.35" ( DR DOS 3.35 ), " 3.40" ( DR DOS 3.40 ), " 3.41" ( DR DOS 3.41 , EZ-DOS 3.41 ), " 3.41T" ( DR DOS 3.41T ), " 4.1" ( الكمبيوتر المتزامن DOS 4.1 ), " 5.0" ( DR DOS 5.0 , DR Multiuser DOS 5.0 ), " 5.1" ( نوفيل DR متعدد المستخدمين DOS 5.1 )، " 6.0" ( DR Concurrent DOS XM 6.0 , DR DOS 6.0 ), " 6.2" ( DR Concurrent DOS XM 6.2 ), " 7" ( Novell DOS 7 , Caldera OpenDOS 7.01 , DR-DOS 7.02 - 7.05 ), " 7.00" ( CCI Multiuser DOS 7.00 ), " 7.07" ( DR-DOS 7.07 ), " 7.1" ( IMS Multiuser DOS 7.1 )، " 7.21" ( CCI Multiuser DOS 7.21[ 25 ] " 7.22" ( CCI Multiuser DOS 7.22 ) إلخ. [ 13 ] [ 27 ] [ 25 ]
%YESCHAR%
يمكن استخدام هذا المتغير لتحديد الحرف الذي تعرضه بعض الأوامر في رسائل "نعم" في [Y,N]الاستعلامات، وبالتالي تجاوز الإعداد الافتراضي للنظام (عادةً " Y" في النسخ الإنجليزية من DR-DOS). إذا احتوى المتغير على سلسلة نصية، فسيتم استخدام الحرف الأول فقط، بحرف كبير. تدعم بعض الأوامر أيضًا مُعامل سطر الأوامر /Yلافتراض "نعم" تلقائيًا في الاستعلامات، وبالتالي إخفاء هذه المطالبات. مع ذلك، إذا تم استخدام المُعامل /Y:yلتحديد حرف "نعم" (وبالتالي تجاوز أي %YESCHAR%إعداد)، فلن يتم إخفاء الاستعلامات. انظر أيضًا CONFIG.SYSالتوجيه ذي الصلة YESCHARومتغير البيئة %NOCHAR%. [ 24 ]
%$CLS%
يُحدد هذا المتغير تسلسل التحكم الذي يُرسل إلى برنامج تشغيل وحدة التحكم لمسح الشاشة عند CLSإصدار الأمر، متجاوزًا بذلك الإعداد الافتراضي الداخلي (" ←[2J" في نظام DR-DOS، و " ←E" في نظام DOS Plus 1.2 على أجهزة Amstrad [ 21 وكذلك في أنظمة Concurrent DOS و Multiuser DOS و REAL/32 لمحطات VT52 ، أو " ←+" في نظام Multiuser DOS لمحطات ASCII ). [ 25 ] إذا لم يُحدد المتغير ولم يتم اكتشاف أي برنامج تشغيل لوحدة التحكم، فسيمسح ANSI.SYSنظام DR-DOS الشاشة مباشرةً عبر وظيفة BIOS ، كما يفعل نظاما MS-DOS/PC DOS . يدعم النظام ترميزًا خاصًا للأرقام الثمانية للسماح بتعريف أحرف خاصة مثل ESC ( ASCII-27 = "←" = 1Bh = 33o)، كما في fe . لإرسال الشرطة المائلة العكسية (" ") نفسها، يمكن مضاعفتها " ". [ 13 ] [ 22 ] [ 25 ]COMMAND.COMINT 10h/AH=00h COMMAND.COM\nnnSET $CLS=\033[2J\\\
%$DIR%
يدعم نظام DOS Plus هذا الخيار، حيث يقبل القيمتين "L" (طويل) أو "W" (عريض) لتغيير التخطيط الافتراضي لعرض محتويات الدليل باستخدام الأمر DIR . يمكن تجاوز هذا التخطيط باستخدام خيارات سطر الأوامر /L. [ 22 ] [ 21 ] انظر أيضًا متغير البيئة المماثل وخيارات الأمر DR -DOS COMMAND.COM. [ 13 ]/W%DIRCMD%DIR/C/R
%$PAGE%
يدعمها نظام DOS Plus الذي يقبل القيمتين " ON" أو " OFF" للتحكم في الترقيم. ضبط هذه القيمة على " ON" له نفس تأثير إضافتها /Pإلى الأوامر التي تدعمها (مثل DIR أو TYPE ). [ 22 ] [ 21 ]
%$LENGTH%
يستخدمه نظام DOS Plus لتحديد طول شاشة وحدة التحكم بالأسطر. يُستخدم هذا للتحكم، بطريقة قابلة للتنقل، في وقت إيقاف إخراج الشاشة مؤقتًا حتى يتم الضغط على مفتاح، وذلك بالتزامن مع الخيار /Pالمدعوم من قِبل أوامر مختلفة أو مع الترقيم التلقائي. [ 22 ] [ 21 ] انظر أيضًا متغيرات البيئة ذات الصلة %$WIDTH%، بالإضافة %DIRSIZE%إلى المتغير الوهمي المماثل %_ROWS%.
%$WIDTH%
يستخدمه نظام DOS Plus لتحديد عرض شاشة وحدة التحكم بالأعمدة. يُستخدم هذا للتحكم بطريقة قابلة للتنقل في تنسيق مخرجات الشاشة لأوامر مثل DIR /W`or` TYPE filename. [ 22 ] [ 21 ] انظر أيضًا متغيرات البيئة ذات الصلة %$LENGTH%، %DIRSIZE%بالإضافة إلى المتغير الوهمي المماثل %_COLUMNS%.
%$SLICE%
يستخدمه نظام DOS Plus لقبول قيمة عددية للتحكم في تقسيم وقت التشغيل بين الواجهة الأمامية والخلفية للبرامج متعددة المهام. [ 22 ] [ 21 ] انظر أيضًا أمر DOS Plus SLICE.
%$ON%
يمكن لهذا المتغير أن يحتوي على تسلسل تحكم اختياري لتفعيل تمييز النص أو الرجوع إلى النص السابق أو تلوينه. يُستخدم هذا المتغير لتسليط الضوء على أسماء الملفات أو التحكم في عرضها في أوامر مثل ` <div>` TYPE wildcard، على سبيل المثال SET $ON=\033[1mعند تحميل ملف ANSI.SYSSET $ON=\016 أو عند استخدام طابعة IBM أو ESC/P . للاطلاع على الترميز الثماني الخاص \nnnالمدعوم، انظر [ 13 ] [ 21 ]%$CLS% . بينما يكون المتغير غير مُعرَّف افتراضيًا في نظامي DOS Plus وDR-DOS، فإن القيمة الافتراضية في نظام Multiuser DOS لطرفية ASCII تساوي `<div>` . [ 22 ] [ 25 ] . انظر أيضًا متغير البيئة ذي الصلة .SET $ON=\033p%$OFF%
%$OFF%
This variable can hold an optional control sequence to switch text highlighting, reversion or colorization off. It is used to return to the normal output after the display of file names in commands like TYPE wildcard, for example SET $OFF=\033[0m with ANSI.SYS loaded or SET $OFF=\024 for an IBM or ESC/P printer. For the special \nnn octal notation supported, see %$CLS%.[13][21] While the variable is undefined by default under DOS Plus and DR-DOS, the Multiuser DOS default for an ASCII terminal equals SET $OFF=\033q.[22][25] See also the related environment variable %$ON%.
%$HEADER%
This variable can hold an optional control sequence issued before the output of the file contents in commands like TYPE under DR-DOS 7.02 and higher. It can be used for highlighting, pagination or formatting, f.e. when sending the output to a printer, i.e. SET $HEADER=\017 for an IBM or ESC/P printer. For the special \nnn octal notation supported, see %$CLS%.[22] See also the related environment variable %$FOOTER%.
%$FOOTER%
This variable can hold an optional control sequence issued after the output of the file contents in commands like TYPE under DR-DOS 7.02 and higher. It is used to return to the normal output format, i.e. SET $FOOTER=\022\014 in the printer example above. For the special \nnn octal notation supported, see %$CLS%.[22] See also the related environment variable %$HEADER%.

Datalight ROM-DOS supports a number of additional standard environment variables as well including:

%DIRSIZE%
This variable is used to define non-standard screen sizes rows[,cols] for DIR options /P and /W (similar to %$LENGTH% and %$WIDTH% under DOS Plus).[20]
%NEWFILE%
This variable is automatically set to the first parameter given to the CONFIG.SYS directive NEWFILE.[20]

%TZ%, %COMM%, %SOCKETS%, %HTTP_DIR%, %HOSTNAME% and %FTPDIR% are also used by ROM-DOS.[20]

OS/2

%BEGINLIBPATH%
Contains a semicolon-separated list of directories which are searched for DLLsbefore the directories given by the %LIBPATH% variable (which is set during system startup with the special CONFIG.SYS directive LIBPATH). It is possible to specify relative directories here, including "." for the current working directory. See also the related environment variable %ENDLIBPATH%.
%ENDLIBPATH%
قائمة بالمجلدات التي سيتم البحث فيها عن ملفات DLL مثل %BEGINLIBPATH%، ولكن يتم البحث فيها بعد قائمة المجلدات في %LIBPATH%.

ويندوز

تشير متغيرات البيئة هذه إلى مواقع موارد نظام التشغيل الحيوية، وبالتالي فهي عمومًا لا تعتمد على المستخدم. [ 28 ]

%APPDATA%
يحتوي على المسار الكامل لمجلد بيانات التطبيق الخاص بالمستخدم المسجل دخوله. لا يعمل على نظام التشغيل Windows NT 4.0 SP6 UK.
%LOCALAPPDATA%
هذا المتغير هو ملفات البيانات المحلية للتطبيقات . وتشمل استخداماته تخزين سمات سطح المكتب ، والإبلاغ عن أخطاء نظام التشغيل Windows ، والتخزين المؤقت، وملفات تعريف متصفحات الويب.
%ComSpec%/%COMSPEC%
يحتوي المتغير %ComSpec%على المسار الكامل لمعالج الأوامر؛ في عائلة أنظمة التشغيل Windows NT، يكون هذا هو cmd.exe ، بينما في Windows 9x ، %COMSPEC%يكون COMMAND.COM .
%OS%
يحتوي المتغير %OS%على اسم رمزي لعائلة نظام التشغيل لتمييز مجموعات الميزات المختلفة في مهام المعالجة الدفعية . وهو يشبه متغير بيئة يحمل نفس الاسم %OS%موجود في جميع أنظمة التشغيل المرتبطة بنظام DOS من أصل Digital Research ، مثل Concurrent DOS و Multiuser DOS وREAL/32 و DOS Plus و DR DOS وNovell DOS وOpenDOS. %OS%ويحمل دائمًا السلسلة " Windows_NT" في عائلة Windows NT . [ 29 ]
%PATH%
يحتوي هذا المتغير على قائمة من الدلائل مفصولة بفواصل منقوطة (بدون مسافات بينها)، حيث يبحث مُفسِّر الأوامر عن ملف تنفيذي يُطابق الأمر المُعطى. يمكن تضمين متغيرات البيئة التي تُمثل مسارات داخل هذا %PATH%المتغير، ولكن على مستوى واحد فقط من التوجيه غير المباشر. إذا كان متغير بيئة المسار الفرعي هذا نفسه يحتوي على متغير بيئة يُمثل مسارًا، %PATH%فلن يتم توسيعه بشكل صحيح في استبدال المتغير. يُعادل هذا المتغير في أنظمة يونكس$PATH .
%PROCESSOR_ARCHITECTURE%، %PROCESSOR_ARCHITEW6432%، %PROCESSOR_IDENTIFIER%، %PROCESSOR_LEVEL%،%PROCESSOR_REVISION%
تحتوي هذه المتغيرات على تفاصيل وحدة المعالجة المركزية ؛ ويتم تعيينها أثناء تثبيت النظام.
%PUBLIC%
يشير المتغير %PUBLIC%(الذي تم تقديمه مع نظام التشغيل Vista) إلى دليل ملف تعريف المستخدم العامC:\Users\Public (الزائف) " ".
%ProgramFiles%، %ProgramFiles(x86)%،%ProgramW6432%
يشير المتغير %ProgramFiles%إلى مجلد "ملفات البرامج" ، الذي يخزن جميع البرامج المثبتة لنظام التشغيل Windows وغيرها. القيمة الافتراضية في الأنظمة الناطقة باللغة الإنجليزية هي " C:\Program Files". في إصدارات Windows ذات 64 بت (XP، 2003، Vista)، يوجد أيضًا %ProgramFiles(x86)%متغيران آخران، قيمتهما الافتراضية " C:\Program Files (x86)"، وهما " ". يعتمد المتغير نفسه على ما إذا كانت العملية التي تطلب متغير البيئة 32 بت أو 64 بت (ينتج هذا عن إعادة توجيه 64 بت بين أنظمة Windows [ 30 ] ).%ProgramW6432%C:\Program Files%ProgramFiles%
%CommonProgramFiles%، %CommonProgramFiles(x86)%،%CommonProgramW6432%
يشير هذا المتغير إلى المجلد الفرعي "الملفات المشتركة" ضمن مجلد " ملفات البرامج ". القيمة الافتراضية في الأنظمة الإنجليزية هي " C:\Program Files\Common Files". في إصدارات ويندوز 64 بت (XP، 2003، Vista)، يوجد أيضًا %ProgramFiles(x86)%متغيران آخران، قيمتهما الافتراضية " C:\Program Files (x86)"، وهما " ". يعتمد المتغير نفسه على ما إذا كانت العملية التي تطلب متغير البيئة 32 بت أو 64 بت (وهذا ناتج عن إعادة توجيه 64 بت بين أنظمة ويندوز ).%ProgramW6432%C:\Program Files%ProgramFiles%
%OneDrive%
هذا %OneDrive%المتغير هو متغير بيئة خاص على مستوى النظام، موجود في نظام التشغيل Windows NT ومشتقاته. قيمته هي مسار موقع مجلد OneDrive (في حال تثبيته وإعداده). %OneDrive%في معظم الحالات، تكون قيمته فارغة C:\Users\{Username}\OneDrive\.
%SystemDrive%
هذا %SystemDrive%المتغير هو متغير بيئة خاص على مستوى النظام موجود في نظام التشغيل Windows NT ومشتقاته. قيمته هي محرك الأقراص الذي تم وضع دليل النظام عليه. %SystemDrive%في معظم الحالات، تكون قيمته فارغة C:.
%SystemRoot%
هذا %SystemRoot%المتغير هو متغير بيئة خاص على مستوى النظام، موجود في أنظمة تشغيل ويندوز NT. قيمته هي موقع دليل النظام، بما في ذلك محرك الأقراص والمسار. محرك الأقراص هو نفسه، %SystemDrive%ويختلف المسار الافتراضي في التثبيت النظيف باختلاف إصدار نظام التشغيل. افتراضيًا:
%windir%
يشير هذا المتغير إلى مجلد نظام التشغيل Windows . (في أنظمة تشغيل Windows NT، يكون مطابقًا للمتغير %SystemRoot%المذكور). يتم تثبيت Windows 95-98 و Windows ME افتراضيًا في هذا المجلد . للاطلاع على إصدارات Windows الأخرى، راجع المدخل أعلاه.C:\Windows%SystemRoot%

User management variables store information related to resources and settings owned by various user profiles within the system. As a general rule, these variables do not refer to critical system resources or locations that are necessary for the OS to run.

%ALLUSERSPROFILE% (%PROGRAMDATA% since Windows Vista)
This variable expands to the full path to the All Users profile directory. This profile contains resources and settings that are used by all system accounts. Shortcut links copied to the All Users\' Start menu or Desktop directories will appear in every user's Start menu or Desktop, respectively.
%USERDOMAIN%
The name of the Workgroup or Windows Domain to which the current user belongs. The related variable, %LOGONSERVER%, holds the hostname of the server that authenticated the current user's login credentials (name and password). For home PCs and PCs in a workgroup, the authenticating server is usually the PC itself. For PCs in a Windows domain, the authenticating server is a domain controller (a primary domain controller, or PDC, in Windows NT 4-based domains).
%USERPROFILE%
A special system-wide environment variable found on Windows NT and its derivatives. Its value is the location of the current user's profile directory, in which is found that user's HKCU registry hive (NTUSER). Users can also use the %USERNAME% variable to determine the active users login identification.

Optional System variables are not explicitly specified by default but can be used to modify the default behavior of certain built-in console commands. These variables also do not need to be explicitly specified as command line arguments.

Default values

The following tables shows typical default values of certain environment variables under English versions of Windows as they can be retrieved under CMD.

(Some of these variables are also defined when running COMMAND.COM under Windows, but differ in certain important details: Under COMMAND.COM, the names of environment variable are always uppercased. Some, but not all variables contain short 8.3 rather than long file names. While some variables present in the CMD environment are missing, there are also some variables specific to the COMMAND environment.)

VariableLocale specificWindows XP (CMD)Windows Vista and later (CMD)
%ALLUSERSPROFILE%[31]YesC:\Documents and Settings\All UsersC:\ProgramData[31]
%APPDATA%[31]YesC:\Documents and Settings\%USERNAME%\Application DataC:\Users\%USERNAME%\AppData\Roaming [ 31 ]
%CommonProgramFiles% [ 31 ]نعمC:\Program Files\Common FilesC:\Program Files\Common Files [ 31 ]
%CommonProgramFiles(x86)% [ 31 ]نعمC:\Program Files (x86)\Common Files (فقط في الإصدار 64 بت)C:\Program Files (x86)\Common Files (فقط في إصدار 64 بت) [ 31 ]
%CommonProgramW6432% [ 31 ]نعم%CommonProgramW6432% (غير مدعوم، لا يتم استبداله بأي قيمة)C:\Program Files\Common Files (فقط في الإصدار 64 بت) [ 31 ]
%اسم_الكمبيوتر%لا{اسم الكمبيوتر}{اسم الكمبيوتر}
%ComSpec%لاC:\Windows\System32\cmd.exeC:\Windows\System32\cmd.exe
%HOMEDRIVE% [ 31 ]لاج:ج: [ 31 ]
%HOMEPATH% [ 31 ]نعم\المستندات والإعدادات\%اسم المستخدم%\Users\%USERNAME% [ 31 ]
%LOCALAPPDATA% [ ​​31 ]نعم%LOCALAPPDATA% (غير مدعوم، ولا يمكن استبداله بأي قيمة)C:\Users\%USERNAME%\AppData\Local [ 31 ]
%LOGONSERVER%لا\\{domain_logon_server}\\{domain_logon_server}
٪طريق٪نعمC:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;{بالإضافة إلى مسارات البرامج}C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;{بالإضافة إلى مسارات البرامج}
%PATHEXT%لا.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.WSF;.WSH.com;.exe;.bat;.cmd;.vbs;.vbe;.js;.jse;.wsf;.wsh;.msc
%ProgramData% [ 31 ]نعم%ProgramData% (غير مدعوم، ولا يتم استبداله بأي قيمة)%SystemDrive%\ProgramData [ 31 ]
%ProgramFiles% [ 31 ]نعم%SystemDrive%\Program Files%SystemDrive%\Program Files [ 31 ]
%ProgramFiles(x86)% [ 31 ]نعم%SystemDrive%\Program Files (x86) (في الإصدار 64 بت فقط)%SystemDrive%\Program Files (x86) (فقط في الإصدار 64 بت) [ 31 ]
%ProgramW6432% [ 31 ]نعم%ProgramW6432% (غير مدعوم، لا يمكن استبداله بأي قيمة)%SystemDrive%\Program Files (فقط في الإصدار 64 بت) [ 31 ]
٪اِسْتَدْعَى٪لارمز تنسيق موجه الأوامر الحالي، عادةً$P$Gرمز تنسيق موجه الأوامر الحالي، عادةً$P$G
%PSModulePath%%PSModulePath% (غير مدعوم، لا يمكن استبداله بأي قيمة)%SystemRoot%\system32\WindowsPowerShell\v1.0\Modules\
%PUBLIC% [ 31 ]نعم%PUBLIC% (غير مدعوم، لا يمكن استبداله بأي قيمة)%SystemDrive%\Users\Public [ 31 ]
%SystemDrive% [ 31 ]لاج:ج: [ 31 ]
%SystemRoot% [ 31 ]لادليل ويندوز، عادةً C:\Windows ، وكان سابقًا C:\WINNT%SystemDrive%\Windows [ 31 ]
%TEMP% [ 31 ] و %TMP% [ 31 ]نعم%SystemDrive%\Documents and Settings\%USERNAME%\Local Settings\Temp%SystemRoot%\TEMP (لمتغيرات بيئة النظام %TMP% و %TEMP%%USERPROFILE%\AppData\Local\Temp [ 31 ] (لمتغيرات بيئة المستخدم %TMP% و %TEMP% )
%USERDOMAIN%لا{userdomain}{userdomain}
٪اسم المستخدم٪لا{اسم المستخدم}{اسم المستخدم}
%USERPROFILE% [ 31 ]نعم%SystemDrive%\Documents and Settings\%USERNAME%%SystemDrive%\Users\%USERNAME% [ 31 ]
%windir% [ 31 ]لا%SystemDrive%\WINDOWS%SystemDrive%\Windows [ 31 ]

لا يوجد في هذه القائمة متغير بيئي يشير إلى موقع دليل "مستنداتي" الخاص بالمستخدم ، لذلك لا توجد طريقة قياسية لتعيين الدليل الرئيسي للبرنامج ليكون دليل "مستنداتي" .

متغيرات البيئة الزائفة

تدعم معالجات الأوامر في نظامي التشغيل DOS وWindows أيضًا متغيرات البيئة الوهمية. وهي قيم يتم جلبها مثل متغيرات البيئة، ولكنها لا تُخزن فعليًا في البيئة، بل تُحسب عند الطلب.

دوس

إلى جانب متغيرات البيئة الحقيقية، التي يتم تخزينها بشكل ثابت في البيئة حتى يتم تغييرها أو حذفها، يوجد عدد من متغيرات البيئة الزائفة لمعالجة الدفعات.

تُعرف هذه المعلمات باسم معلمات الاستبدال أو المعلمات القابلة للاستبدال (مصطلحات مايكروسوفت/آي بي إم)، أو متغيرات الاستبدال (مصطلحات ديجيتال ريسيرش/نوفيل/كالدرا) [ 23 أو معلمات ملفات الدُفعات (مصطلحات جي بي سوفتوير) [ 12 ]%1 ، %9ويمكن %0استخدامها لاسترجاع معلمات استدعاء مهمة الدُفعات SHIFT. في مهام الدُفعات، يمكن استرجاعها تمامًا مثل متغيرات البيئة، ولكنها لا تُخزَّن فعليًا في البيئة.

تدعم بعض معالجات سطر الأوامر (مثل DR-DOSCOMMAND.COM ، و Multiuser DOS / (Terminal Message Process)، وJP Software 4DOS ، و 4OS2 ، و Take Command (المعروف سابقًا باسم 4NT)، وWindows cmd.exe ) نوعًا من متغيرات البيئة الوهمية تُسمى متغيرات معلومات النظام (مصطلحات Novell / Caldera) [ 23 ] أو المتغيرات الداخلية (مصطلحات JP Software) [ 12 ] ، والتي يمكن استخدامها لاسترجاع معلومات متنوعة، قد تكون ديناميكية، ولكنها للقراءة فقط، حول النظام قيد التشغيل في مهام الدفعات. تمثل القيم المُعادة حالة النظام في اللحظة التي يتم فيها الاستعلام عن هذه المتغيرات؛ أي أن قراءتها عدة مرات متتالية قد تُعيد قيمًا مختلفة حتى ضمن نفس الأمر؛ ولا يؤثر الاستعلام عنها بشكل مباشر على النظام. ولأنها غير مخزنة في البيئة، فإنها لا تظهر في قائمة SET ولا يمكن للبرامج الخارجية استرجاعها. إذا تم تعريف متغير بيئة حقيقي بنفس الاسم، فإنه يأخذ الأولوية على المتغير المقابل حتى يتم حذف متغير البيئة مرة أخرى. لا تُميّز هذه المتغيرات بين الأحرف الكبيرة والصغيرة. فبينما تُسبق جميع هذه المتغيرات تقريبًا بشرطة سفلية (" ") بواسطة 4DOS وما إلى ذلك وفقًا للاتفاقية (fe )، [ 12 ] فإنها لا تُسبق بشرطة سفلية في DR-DOS (fe ).MDOS.COMTMP.EXE_%_SECOND%COMMAND.COM%OS_VERSION%

بالإضافة إلى ذلك، تدعم أنظمة 4DOS و4OS2 و4NT وTake Command ما يُسمى بالوظائف المتغيرة ، [ 12 ] بما في ذلك الوظائف التي يُحددها المستخدم. تعمل هذه الوظائف تمامًا مثل المتغيرات الداخلية ، ولكنها تقبل معلمات اختيارية (fe %@EVAL[]%) وقد تُغير حالة النظام تبعًا لوظيفتها.

متغيرات معلومات النظام التي يدعمها نظام DR-DOS COMMAND.COM:

%AM_PM%
يُعيد هذا المتغير الوهمي حالة الوقت الحالي قبل أو بعد منتصف النهار. وتعتمد السلسلة المُعادة على إصدار DR-DOS الخاص باللغة، مثل " am" أو " pm" في النسخة الإنجليزية. وهو يُشبه متغير مُعرّف يحمل نفس الاسم في نصوص تسجيل الدخول لبرنامج Novell NetWare .
%DAY%
يُعيد هذا المتغير الوهمي عدد أيام التاريخ الحالي بصيغة مكونة من رقمين مع أصفار بادئة، مثل " 01".." 31". انظر أيضًا المتغير الوهمي المشابه %_DAY%. وهو يُشبه متغيرًا مُعرّفًا يحمل نفس الاسم في نصوص تسجيل الدخول لبرنامج نوفيل نت وير .
%DAY_OF_WEEK%
يُعيد هذا المتغير الوهمي اسم يوم الأسبوع بتنسيق من ثلاثة أحرف. وتعتمد السلسلة المُعادة على إصدار DR-DOS الخاص باللغة، مثل " Sun", " Mon", " Tue", " ", " Wed, Thu" Fri, أو " Sat" في النسخة الإنجليزية. وهو يُشبه متغير مُعرّف يحمل نفس الاسم في نصوص تسجيل الدخول لبرنامج Novell NetWare .
%ERRORLEVEL%
في COMMAND.COMنظام DR-DOS 7.02 والإصدارات الأحدث، يُعيد هذا المتغير الوهمي آخر مستوى خطأ تم إرجاعه بواسطة برنامج خارجي أو RETURNالأمر fe " 0".." 255". [ 32 ] [ 33 ] انظر أيضًا المتغير الوهمي الذي يحمل نفس الاسم %ERRORLEVEL%في نظام التشغيل Windows والأمر IF ERRORLEVELالشرطي.
%ERRORLVL%
في نظام DR-DOS 7.02 والإصدارات الأحدث، يُعيد هذا المتغير الوهمي مستوى الخطأ الأخير بتنسيق مكون من ثلاثة أرقام مع أصفار بادئة، مثل " 000".." 255". [ 32 ] [ 33 ] في نظام Multiuser DOS ، يُعد هذا متغير بيئة حقيقيًا يتم تحديثه تلقائيًا بواسطة الصدفة إلى رمز الإرجاع للبرامج التي تم إنهاؤها. [ 25 ] انظر أيضًا المتغير الوهمي ذي الصلة %ERRORLEVEL%في نظام DR-DOS والأمر IF ERRORLEVEL.
%GREETING_TIME%
يُعيد هذا المتغير الوهمي وقت تحية اليوم بثلاثة مستويات. وتعتمد السلسلة المُعادة على إصدار DR-DOS الخاص باللغة، مثل " morning" أو " afternoon" أو " evening" في النسخة الإنجليزية. وهو يُشبه متغير مُعرّف يحمل نفس الاسم في نصوص تسجيل الدخول لبرنامج Novell NetWare .
%HOUR%
يُعيد هذا المتغير الوهمي ساعات الوقت الحالي بتنسيق 12 ساعة بدون أصفار بادئة، مثل " 1".." 12". وهو يشبه متغير معرف يحمل نفس الاسم في نصوص تسجيل الدخول لـ Novell NetWare .
%HOUR24%
يُعيد هذا المتغير الوهمي ساعات الوقت الحالي بتنسيق 24 ساعة، مُقسّمًا إلى رقمين مع أصفار بادئة، مثل " 00".." 23". وهو يُشبه مُتغيرًا مُعرّفًا يحمل نفس الاسم في نصوص تسجيل الدخول لبرنامج نوفيل نت وير . انظر أيضًا المتغير الوهمي المُشابه %_HOUR%.
%MINUTE%
يُعيد هذا المتغير الوهمي دقائق الوقت الحالي بصيغة مكونة من رقمين مع أصفار بادئة، مثل " 00".." 59". وهو يُشبه متغيرًا مُعرّفًا يحمل نفس الاسم في نصوص تسجيل الدخول لبرنامج نوفيل نت وير . انظر أيضًا المتغير الوهمي المُشابه %_MINUTE%.
%MONTH%
This pseudo-variable returns the months of the current date in a 2-digit format with leading zeros, f.e. "01".."12". It resembles an identically named identifier variable in Novell NetWare login scripts. See also the similar pseudo-variable %_MONTH%.
%MONTH_NAME%
This pseudo-variable returns the month name of the current date. The returned string depends on the locale-specific version of DR-DOS, f.e. "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", or "December" in the English version. It resembles an identically named identifier variable in Novell NetWare login scripts.
%NDAY_OF_WEEK%
This pseudo-variable returns the number of day of the current week, f.e. "1".."7" (with "1" for Sunday). It resembles an identically named identifier variable in Novell NetWare login scripts.
%OS_VERSION%
This pseudo-variable returns the version of the operating system depending on the current setting of the environment variable %VER%. If %VER% is not defined, %OS_VERSION% returns "off". It resembles an identically named identifier variable in Novell NetWare login scripts, which may return versions also for non-DR-DOS versions of DOS.
%SECOND%
This pseudo-variable returns the seconds of the current time in a 2-digit format with leading zeros, f.e. "00".."59". It resembles an identically named identifier variable in Novell NetWare login scripts. See also the similar pseudo-variable %_SECOND%.
%SHORT_YEAR%
This pseudo-variable returns the year of the current date in a 2-digit format with leading zeros, f.e. "93".."99", "00".."92". It resembles an identically named identifier variable in Novell NetWare login scripts.
%YEAR% and %_YEAR%
Supported since Novell DOS 7, the %YEAR% pseudo-variable returns the year of the current date in a 4-digit format, f.e. "1980".."2099". It resembles an identically named identifier variable in Novell NetWare login scripts. DR-DOS 7.02 and higher added %_YEAR% for compatibility with 4DOS, returning the same value.[12]
%/%
في COMMAND.COMنظام DR-DOS 7.02 والإصدارات الأحدث، يُعيد هذا المتغير الوهمي إعداد SwitChar الحالي للنظام، إما " /" (نمط DOS) أو " -" (نمط Unix) . [ 34 ] [ 35 ] انظر أيضًا CONFIG.SYSالتوجيه ذي الصلة SWITCHAR ومتغير البيئة %SWITCHAR%.
%_CODEPAGE%
يُعيد هذا المتغير الوهمي صفحة الترميز الحالية للنظام (" 1.." 65533" ), fe " 437", " 850", " 858". أُضيف هذا المتغير في الأصل بواسطة 4DOS ، [ 12 ] ولكنه أصبح متاحًا أيضًا مع COMMAND.COMDR-DOS 7.02. انظر أيضًا CHCPالأمر.
%_COLUMNS%
يُعيد هذا المتغير الوهمي عدد أعمدة الشاشة الحالي بناءً على وضع العرض، مثل " 40", " 80", " 132", إلخ. وقد أُضيف هذا المتغير في الأصل بواسطة نظام 4DOS ، [ 12 ] وأصبح متاحًا أيضًا مع COMMAND.COMنظام DR-DOS 7.02. انظر أيضًا متغير بيئة مشابه %$WIDTH%في نظام DOS Plus.
%_COUNTRY%
يُعيد هذا المتغير الوهمي رمز الدولة الحالي للنظام (" 1.." 65534" )، مثل " 1" للولايات المتحدة الأمريكية، و" 44" للمملكة المتحدة، و" " 49لألمانيا، و" 20049" مع دعم معيار ISO 8601 ، و" 21049" مع دعم معيار ISO 8601 واليورو . [ 35 ] [ 36 ] أُضيف هذا المتغير في الأصل بواسطة 4DOS ، [ 12 ] ولكنه أصبح متاحًا أيضًا مع COMMAND.COMDR-DOS 7.02. انظر أيضًا CONFIG.SYSالتوجيه COUNTRY.
%_DAY%
يُعيد هذا المتغير الوهمي عدد أيام التاريخ الحالي بدون أصفار بادئة، مثل " 1".." 31". تم تقديم هذا المتغير في الأصل بواسطة نظام 4DOS ، [ 12 ] ولكنه أصبح متاحًا أيضًا مع COMMAND.COMنظام DR-DOS 7.02. انظر أيضًا المتغير الوهمي المشابه .%DAY%
%_HOUR%
يُعيد هذا المتغير الوهمي ساعات الوقت الحالي بصيغة 24 ساعة بدون أصفار بادئة، مثل " 0".." 23". تم تقديم هذا المتغير في الأصل بواسطة 4DOS ، [ 12 ] ولكنه أصبح متاحًا أيضًا مع COMMAND.COMDR-DOS 7.02. انظر أيضًا المتغير الوهمي المشابه %HOUR24%.
%_MINUTE%
This pseudo-variable returns the minutes of the current time without leading zeros, f.e "0".."59". This variable was originally introduced by 4DOS,[12] but also became available with COMMAND.COM since DR-DOS 7.02. See also the similar pseudo-variable %MINUTE%.
%_MONTH%
This pseudo-variable returns the months of the current date without leading zeros, f.e. "1".."12". This variable was originally introduced by 4DOS,[12] but also became available with COMMAND.COM since DR-DOS 7.02. See also the similar pseudo-variable %MONTH%.
%_ROWS%
This pseudo-variable returns the current number of screen rows depending on the display mode, f.e. "25", "43", "50", etc. This variable was originally introduced by 4DOS,[12] but also became available with COMMAND.COM since DR-DOS 7.02. See a similar environment variable %$LENGTH% under DOS Plus.
%_SECOND%
This pseudo-variable returns the seconds of the current time without leading zeros, f.e. "0".."59". This variable was originally introduced by 4DOS,[12] but also became available with COMMAND.COM since DR-DOS 7.02. See also the similar pseudo-variable %SECOND%.

System information variables supported by DR-DOS COMMAND.COM with networking loaded:

%LOGIN_NAME%
This pseudo-variable returns the user name. This always worked with NETX, but it will also work with Personal NetWare's ODI/VLM if the current drive is a PNW-mapped drive (otherwise an empty string is returned). See also the similarly named environment variable %LOGINNAME%.
%P_STATION%
This pseudo-variable returns the physical station number in a format "????????????". The value depends on the MAC address of the network adapter, but can be overridden. It resembles an identically named identifier variable in Novell NetWare login scripts.
%STATION%
This pseudo-variable returns the logical station number starting with "1" for the first client. The numbers are assigned by the file server and remain static for as long as the IPX connection remains established. It resembles an identically named identifier variable in Novell NetWare login scripts.
%FULL_NAME%
يُعيد هذا المتغير الوهمي الاسم الكامل للمستخدم المُسجّل دخوله، إن وُجد. وهو يُشبه متغيرًا مُعرّفًا يحمل الاسم نفسه في نصوص تسجيل الدخول الخاصة بـ Novell NetWare . انظر أيضًا المتغير الوهمي ذي الصلة %LOGIN_NAME%.

ويندوز

متغيرات البيئة الديناميكية (وتُسمى أيضًا المتغيرات الداخلية أو متغيرات معلومات النظام في نظام DOS) هي متغيرات بيئة افتراضية يدعمها النظام CMD.EXEعند تفعيل امتدادات سطر الأوامر، وتتوسع إلى قيم منفصلة متعددة عند الاستعلام عنها، أي أن قيمها قد تتغير عند الاستعلام عنها عدة مرات حتى ضمن الأمر نفسه. ورغم إمكانية استخدامها في مهام الدفعات وفي موجه الأوامر، إلا أنها لا تُخزن في بيئة النظام. وبالتالي، لا يتم عرضها في قائمة المتغيرات SETولا يمكن للبرامج الخارجية قراءتها. وهي غير حساسة لحالة الأحرف.

وبشكل غير مباشر، يتم دعمها أيضًا في نظام التشغيل ويندوز COMMAND.COM، والذي تم تعديله لاستدعاء CMD.EXEالأوامر داخليًا لتنفيذها.

%CD%
يتوسع هذا المتغير الوهمي ليشير إلى المجلد الحالي، وهو ما يعادل ناتج الأمر CDعند استدعائه بدون وسائط. مع أن اسم الملف قد يكون طويلاً CMD.EXEحسب المجلد الحالي، إلا أن كون المجلد الحالي دائمًا بتنسيق 8.3COMMAND.COM سيؤدي إلى إرجاع اسم ملف قصير COMMAND.COM، حتى عند COMMANDاستدعاء الأمر داخليًا CMD.
%CMDCMDLINE%
يتوسع هذا المتغير الوهمي إلى معلمات بدء التشغيل الأصلية لـ CMD.EXE، fe " C:\Windows\system32\cmd.exe". في نظام التشغيل Windows COMMAND.COM، قد يُرجع هذا شيئًا مثل " C:\Windows\system32\cmd.exe /c ..." نظرًا لأن COMMAND.COMالاستدعاءات تتم CMD.EXEداخليًا.
%CMDEXTVERSION%
يتوسع هذا المتغير الزائف إلى إصدار ملحقات سطر الأوامر لـ CMD.EXE، إذا تم تمكينه (على سبيل المثال " 1" تحت نظام التشغيل Windows NT ، " 2" تحت نظام التشغيل Windows 2000 و Windows XP ).
%DATE%
يتوسع هذا المتغير الوهمي ليشمل التاريخ الحالي. ويتم عرض التاريخ وفقًا لتفضيلات تنسيق التاريخ الخاصة بالمستخدم الحالي .
%ERRORLEVEL%
يتوسع هذا المتغير الوهمي إلى آخر مستوى خطأ مُحدد، وهي قيمة بين " 0" و " 255" (بدون أصفار بادئة). [ 32 ] [ 37 ] [ 33 ] تقوم الأوامر الخارجية وبعض الأوامر الداخلية بتحديد مستويات الخطأ عند التنفيذ. انظر أيضًا المتغير الوهمي الذي يحمل نفس الاسم %ERRORLEVEL%في DR-DOS والأمر IF ERRORLEVEL.
%HIGHESTNUMANODENUMBER%
هذا المتغير الزائف يُرجع رقم أعلى عقدة NUMA .
%RANDOM%
هذا المتغير الزائف يُرجع رقمًا عشوائيًا بين " 0" و " 32767".
%TIME%
This pseudo-variable returns the current time. The time is displayed according to the current user's time format preferences. If the %TIME% and %DATE% variables are both used, it is important to read them both in this particular order in rapid succession in order to avoid midnight-rollover problems.

Other shells

Unix-like shells have similar dynamically generated variables, bash's $RANDOM being a well-known example. However, since these shells have a concept of local variables, they are described as special local variables instead.[38]

See also

Notes

  1. 12Applications not coping properly with environment variables longer than 128 characters include CadStar PCB, Checkit, Computer Select CD-ROM, RenderMan, VINES Network, Windows 3.0, and Word for Windows 6.0.
  2. 4DOS and MS-DOS 7.0 set the length to 127 and insert ASCII-13 at this position, but Borland libraries set the length to the invalid value of 128 and do not insert an ASCII-13. For shorter command lines, 4DOS/NDOS and DR-DOS also insert an ASCII-0 after the ASCII-13, but not when invoked via INSTALL directive; MS-DOS does not.

References

  1. Robbins, Arnold; Beebe, Nelson H. F. (May 2005). Apandi, Tatiana; Randal, Allison; Witwer, Adam (eds.). Classic Shell Scripting (1 ed.). O'Reilly. ISBN 978-0-596-00595-5.
  2. "unset - unset values and attributes of variables and functions ". Commands & Utilities Reference, The Single UNIX Specification - The Open Group Base Specifications, IEEE Std 1003.1-2008 (Issue 7 ed.). The IEEE and The Open Group. 2016 [2001]. Archived from the original on 2017-12-18. Retrieved 2017-12-18.
  3. fgrose (2015-07-31) [2011]. "The unset builtin command". Bash Hackers Wiki. Archived from the original on 2017-12-18. Retrieved 2017-12-18.
  4. "putenv". php.net. The PHP Documentation Group. Archived from the original on 2025-11-09. Retrieved 2026-06-30.
  5. دالة "putenv()" في لغة PHP . وثائق مؤسسة Raided Foundation . مؤسسة Raided Foundation. مؤرشفة من الأصل بتاريخ 31 أكتوبر 2025. تم الاطلاع عليها بتاريخ 31 أكتوبر 2025 .
  6. جاكوبس، مايك؛ كورين، ألكسندر؛ ساتران، مايكل (14 نوفمبر 2017). "تخزين واسترجاع الإعدادات وبيانات التطبيقات الأخرى" . مايكروسوفت . مؤرشف من الأصل في 18 ديسمبر 2017. تم الاسترجاع في 18 ديسمبر 2017 .
  7. ريموند، إريك (2002-08-02) [نُشر أصلاً عام 2001]. "مشروع المتصفح" . مؤرشف من الأصل بتاريخ 2019-09-21 . تم الاطلاع عليه بتاريخ 2020-10-21 .
  8. "LWN - التطوير" . LWN.net . 1 فبراير 2001. مؤرشف من الأصل في 8 فبراير 2019. تم الاطلاع عليه في 21 أكتوبر 2020. توحيد متغير بيئة BROWSER. يروج إريك ريموند لاستخدام متغير بيئة جديد، BROWSER، ليكمل متغيرات PAGER وMAILER وEDITOR الحالية. ويجري اختبار هذا الجهد كتجربة في اختراق الأنظمة الاجتماعية.
  9. Špaček, Michal (2020-01-19) [نُشرت النسخة الأولى عام 2013]. "Env::Browser-0.06" . metacpan.org . مؤرشف من الأصل بتاريخ 2020-10-21 . تم الاسترجاع بتاريخ 2020-10-21 . Env::Browser - معالجة متغير بيئة التشغيل $BROWSER وتشغيل متصفح الويب
  10. "متصفح الويب - وحدة تحكم سهلة الاستخدام لمتصفح الويب" . docs.python.org . مؤرشف من الأصل بتاريخ 13 أكتوبر 2020. تم الاطلاع عليه بتاريخ 21 أكتوبر 2020 .
  11. "المتصفح الافتراضي - ويكي دبيان" . wiki.debian.org . 10 يونيو 2020. مؤرشف من الأصل في 21 أكتوبر 2020. تم الاطلاع عليه في 21 أكتوبر 2020. يمكن ضبط متغير البيئة BROWSER على [...] لاختيار المتصفح الذي تريده دائمًا.
  12. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 براذرز، هاردين؛ راوسون، توم ؛ كون، ريكس سي .؛ بول، ماتياس ر داي، تشارلز إي.؛ جورجيف، لوتشيزار آي. (27-02-2002). المساعدة عبر الإنترنت لنظام 4DOS 8.00 .
  13. 123456789101112131415161718Paul, Matthias R. (1997-07-30) [1994-05-01]. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. Release 157 (in German) (3 ed.). Archived from the original on 2016-11-04. Retrieved 2014-08-06.{{cite book}}: |work= ignored (help) (NB. NWDOSTIP.TXT is a comprehensive work on Novell DOS 7 and OpenDOS 7.01, including the description of many undocumented features and internals. The provided link points to a HTML-converted version of the file, which is part of the MPDOSTIP.ZIP collection.)
  14. 12345Paul, Matthias R. (1997-05-01) [1995-03-01]. "Hinweise zu JPSofts 4DOS 5.5b/c, 5.51, 5.52a und NDOS". MPDOSTIP (in German). Archived from the original on 2016-11-04. Retrieved 2015-05-08. (NB. The provided link points to a HTML-converted version of the 4DOS5TIP.TXT file, which is part of the MPDOSTIP.ZIP collection.)
  15. 12Paul, Matthias R. (1997-10-02). "Caldera OpenDOS 7.01/7.02 Update Alpha 3 IBMBIO.COM README.TXT". Archived from the original on 2003-10-04. Retrieved 2009-03-29.
  16. Paul, Matthias R. (1997-05-27) [1996]. "SETENV v1.11". Archived from the original on 2009-02-15. Retrieved 2019-08-09. […] SETENV […] to hide and later restore the […] pre-environment […] By using SETENV.COM you can save some KiloBytes of rare DOS memory […] depending on the number of drivers loaded by INSTALL=/INSTALLHIGH=/HIINSTALL= and the current size of the pre-environment. […] this original […] feature cannot be found in any known memory manager/optimizer. […]
  17. بول، ماتياس ر. (2002-04-06). "ردًا على: [ fd-dev ] إعلان: CuteMouse 2.0 alpha 1" . freedos-dev . مؤرشف من الأصل في 2020-02-07 . تم الاسترجاع في 2020-02-07 . [...] في روتين prepareTSR الخاص بـ CTMOUSE.ASM، وجدتُ تعليقًا بخصوص بيئة الصفر. [...] بيئة الصفر في DESQview أو DRDOS ؟ [...] كتلة تحرير البيئة [...] التخطي في حال وجود أي مشكلة [...] إضافة أصفار لأدوات نمط MEM [...]
  18. "دليل مستخدم PTS-DOS 2000 Pro" (ملف PDF) . مؤرشف (ملف PDF) من النسخة الأصلية بتاريخ 12-05-2018 . تم الاطلاع عليه بتاريخ 12-05-2018 .
  19. بول، ماتياس ر. (2002-10-07). "رد: تشغيل ملف COM" . مجموعة الأخبار : alt.msdos.programmer . تم الاسترجاع في 2017-09-03 . {{cite newsgroup}}: CS1 maint: deprecated archiveal service ( link )تم أرشفة الرابط المهمل بتاريخ 3 سبتمبر 2017 على موقع archive.today
  20. 1 2 3 4 5 6 داتالايت، إنك .؛ جي بي في إن أو (أبريل 2005) [1999]. "دليل مستخدم داتالايت روم-دوس" (ملف PDF) . داتالايت، إنك. 3010-0200-0716. مؤرشف (ملف PDF) من الأصل بتاريخ 20 مارس 2019. تم الاطلاع عليه بتاريخ 16 سبتمبر 2018 .
  21. 1 2 3 4 5 6 7 8 9 كوتولا، مارتن (نوفمبر 1987). "من CP/M إلى MS-DOS، الجزء 11" (ملف PDF) . الحوسبة الاحترافية (PC) - شنايدر إنترناشونال (بالألمانية). 3 (11): 100-103 . مؤرشف (ملف PDF) من الأصل بتاريخ 24 أبريل 2019. تم الاطلاع عليه بتاريخ 20 مايو 2018 .
  22. ١ ٢ ٣ ٤ ٥ ٦ ٧ ٨ ٩ ١٠ ١١ ١٢ ١٣ ١٤ بول، ماتياس ر. (٢٠٠٢-٠٣-٢٦). "تم نشر تحديث CLS" . القائمة البريدية freedos-dev. مؤرشف من الأصل في ٢٠١٨-١٠-٠٤ . تم الاسترجاع في ٢٠١٤-٠٨-٠٦ .
  23. 1 2 3 4 5 6 7 8 دليل مستخدم نظام التشغيل Caldera DR-DOS 7.02 . شركة Caldera، 1998 [1993، 1997]. مؤرشف من الأصل بتاريخ 4 نوفمبر 2016. تم الاطلاع عليه بتاريخ 10 أغسطس 2013 .
  24. 1234Paul, Matthias R. (2017-08-14) [2017-08-07]. "The continuing saga of Windows 3.1 in enhanced mode on OmniBook 300". MoHPC - the Museum of HP Calculators. Archived from the original on 2018-05-01. Retrieved 2018-05-01. […] set DRSYS=ON (optional to tell SYS you are aware of the fact that you're running it in a foreign environment and want to proceed anyway without having to individually ACK some warnings and extra info screens displayed in this scenario otherwise) […]
  25. 123456789CCI Multiuser DOS 7.22 GOLD Online Documentation. Concurrent Controls, Inc. (CCI). 1997-02-10. HELP.HLP.
  26. CCI Multiuser DOS 7.22 GOLD Installation Guide. Concurrent Controls, Inc. (CCI). 1997-02-10. PRINTDOC.HLP.
  27. 123Paul, Matthias R. (2002-02-20). "How to detect FreeCOM/FreeDOS in-batch?". freedos-dev mailing list. Archived from the original on 2018-11-06. Retrieved 2014-08-06.
  28. "Recognized environment variables - Windows Deployment". 2024-01-09.
  29. Brink, Shawn (2018-11-17). "Environment Variables in Windows 10 - Complete List of Environment Variables in Windows 10". Windows Ten Forums. Archived from the original on 2019-03-27. Retrieved 2019-04-24.
  30. "WOW64 Implementation Details".
  31. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 شولتز ، حاجو (2014/10/02). "Ordner für spezielle Fälle — Die "benannten Ordner" في Windows aus User- und Entwicklersicht" [ مجلدات الأغراض الخاصة - "المجلدات المسماة" في Windows من وجهة نظر المستخدم والمطور ] . c't - مجلة für Computertechnik (باللغة الألمانية). 2014 (22). دار نشر هايز : 180-184 . مؤرشف من الأصل بتاريخ 2016-07-09 . تم الاطلاع عليه بتاريخ 2019-04-08 .  
  32. 1 2 3 بول ماتياس ر. (1997/05/01) [1993/10/01]. BATTIPs - نصائح وحيل zur Programmierung von Batchjobs (باللغة الألمانية). 7: مستوى الخطأ. مؤرشف من الأصل بتاريخ 23-08-2017 . تم الاسترجاع 2017/08/23 . {{cite book}}تم |work=تجاهله ( مساعدة )أُرشف بتاريخ 23 أبريل 2021 في أرشيف الإنترنت (Wayback Machine) .تم أرشفة الرابط القديم بتاريخ 11-09-2017 على archive.today (ملاحظة: ملف BATTIPS.TXT جزء من ملف MPDOSTIP.ZIP. يشير الرابط المرفق إلى نسخة قديمة من ملف BATTIPS.TXT تم تحويلها إلى HTML.)
  33. 1 2 3 أوير، إريك؛ بول، ماتياس ر.؛ هول، جيم (24-12-2015) [31-12-2003]. "مستويات أخطاء نظام التشغيل MS-DOS" . مؤرشف من الأصل بتاريخ 24-12-2015.
  34. بول، ماتياس ر. (998-01-09). DELTREE.BAT R1.01 حذف الملفات والمجلدات الموسّع . شركة كالدرا. مؤرشف من الأصل في 2019-04-08 . تم الاسترجاع في 2019-04-08 .
  35. 1 2 DR-DOS 7.03 WHATSNEW.TXT — التغييرات من DR-DOS 7.02 إلى DR-DOS 7.03 . كالديرا، وشركة 1998-12-24. مؤرشف من الأصل بتاريخ 2019-04-08 . تم الاسترجاع 2019-04-08 . 
  36. بول، ماتياس ر. (10-06-2001) [1995]. "تنسيق ملف DOS COUNTRY.SYS" (ملف COUNTRY.LST) ( الإصدار 1.44). مؤرشف من الأصل بتاريخ 20-04-2016 . تم الاطلاع عليه بتاريخ 20-08-2016 . 
  37. ألين، ويليام؛ ألين، ليندا. "مستويات أخطاء ويندوز 95/98/ME" . مؤرشف من الأصل بتاريخ 2011-07-07.
  38. "متغيرات الصدفة" . دليل مرجعي لـ Bash . مؤرشف من الأصل بتاريخ 15-03-2018 . تم الاطلاع عليه بتاريخ 02-06-2021 .

للمزيد من القراءة