it-swarm.asia

إضافة دليل إلى PATH

أحاول إضافة C:\xampp\php إلى متغير البيئة PATH في نظامي في Windows.

لقد أضفتها بالفعل باستخدام مربع الحوار متغيرات البيئة.

ولكن عندما أكتب في وحدة التحكم الخاصة بي:

C:\>path

لا يعرض الدليل C:\xampp\php الجديد:

PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin

لدي سؤالان:

  1. لماذا حدث هذا؟ هل هناك شيء فعلته خطأ؟
  2. أيضًا ، كيف يمكنني إضافة أدلة إلى متغيري PATH باستخدام وحدة التحكم (وبرمجيًا ، مع ملف دفعي)؟
448
Mp de la Vega

هذا فقط يعدل التسجيل. لن تستخدم العملية الحالية هذه القيم. ستقوم عملية جديدة بذلك إذا بدأت بعد هذا التغيير و لا ترث البيئة القديمة من أصلها.

لم تحدد كيفية بدء جلسة وحدة التحكم. أفضل طريقة للتأكد من ذلك هي إنهاء الأمر Shell وتشغيله مرة أخرى. يجب أن يرث PATH المحدثة.

122
Hans Passant

الخيار 1

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

يعمل هذا لأن البرامج التي بدأت بعد التغيير فقط ستشاهد PATH الجديد.

الخيار 2

قم بتنفيذ هذا الأمر في نافذة الأوامر التي تفتحها:

set PATH=%PATH%;C:\your\path\here\

يضيف هذا الأمر C:\your\path\here\ إلى PATH الحالي.

تقسمها:

  • set - أمر يغير متغيرات بيئة cmd فقط لجلسة cmd الحالية ؛ البرامج الأخرى والنظام لا تتأثر.
  • PATH= - يشير إلى أن PATH هو متغير البيئة الذي سيتم تغييره مؤقتًا.
  • %PATH%;C:\your\path\here\ - يمتد الجزء %PATH% إلى القيمة الحالية لـ PATH ، ثم يتم ;C:\your\path\here\ بالتسلسل إليه. يصبح هذا PATH الجديد.
864
JimR

تحذير: قد يكون هذا الحل مدمراً لنظام PATH الخاص بك ، واستقرار نظامك. كتأثير جانبي ، سوف يقوم بدمج PATH المستخدم والنظام الخاص بك ، واقتطاع PATH إلى 1024 حرفًا. تأثير هذا الأمر لا رجعة فيه. عمل نسخة احتياطية من PATH أولاً. انظر التعليقات لمزيد من المعلومات.

لا تقم بنسخ ولصق هذا بشكل عمياء. استخدم بحذر.

يمكنك بشكل دائم إضافة مسار إلى PATH مع setx الأمر:

setx /M path "%path%;C:\your\path\here\"

أزل علامة /M إذا كنت ترغب في تعيين المستخدم PATH بدلاً من PATH.

ملاحظات:

  • يتوفر الأمر setx في نظام التشغيل Windows 7 والإصدارات الأحدث فقط.
  • يجب تشغيل هذا الأمر من موجه أوامر مرتفع.

  • إذا كنت تريد فقط تغييره للجلسة الحالية ، فاستخدم set .

174
Nafscript

لا تحتاج إلى أي أمر set أو setx ، ما عليك سوى فتح الجهاز الطرفي واكتب:

PATH

هذا يدل على القيمة الحالية للمتغير PATH. الآن تريد إضافة دليل لذلك؟ ببساطة اكتب:

PATH %PATH%;C:\xampp\php

إذا كنت ترغب في مسح متغير PATH لأي سبب من الأسباب (لا توجد مسارات على الإطلاق أو حذف جميع المسارات الموجودة فيه) ، فاكتب:

PATH ;

تحديث

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

للتحقق من وجود متغير بيئي أو لمعرفة قيمته ، استخدم ECHO commnad:

echo %YOUR_ENV_VARIABLE%
58
zar

في عصر PowerShell هذا ، أود تعديل PATH كما يلي:

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")

لتعيين المتغير لجميع المستخدمين ، على مستوى الجهاز ، يجب أن يكون السطر الأخير كما يلي:

[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")

في برنامج PowerShell النصي ، قد ترغب في التحقق من وجود C:\xampp\php الخاص بك قبل الإضافة إلى PATH (في حالة إضافته مسبقًا). يمكنك لفه بشروط if.

لذلك وضع كل ذلك معا:

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
    [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}
34
Ifedi Okonkwo

أكثر أمانا SETX

إيماءة لجميع التعليقات على @ Nafscript's SETX answer .

  • SETX افتراضيًا سيؤدي إلى تحديث المستخدم المسار.
  • SETX ... /M سيقوم بتحديث النظام المسار.
  • %PATH% يحتوي على مسار النظام مع إلحاق مسار المستخدم

تحذيرات

  1. النسخ الاحتياطي الخاص بك PATH- سوف SETX اقتطاع غير المرغوب فيه الخاص بك أطول من 1024 حرفا
  2. لا تتصل SETX %PATH%;xxx- يضيف مسار النظام إلى مسار المستخدم
  3. لا تتصل SETX %PATH%;xxx /M- يضيف مسار المستخدم في مسار النظام
  4. استخدام الملف الدفعي المفرط يمكن أن يسبب العمى1

تحتوي صفحة ss64 SETX على بعض الأمثلة الجيدة للغاية. الأهم من ذلك أنه يشير إلى مكان مفاتيح التسجيل لـ SETX vs SETX /M

متغيرات المستخدم:

HKCU\Environment

متغيرات النظام:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

تعليمات الاستخدام

إلحاق المستخدم PATH

append_user_path.cmd

@ECHO OFF
REM usage: append_user_path "path"
SET Key="HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > user_path_bak.txt
SETX PATH "%CurrPath%";%1

إلحاق النظام PATH

append_system_path.cmd. يجب تشغيله كمشرف.

(هو في الأساس نفسه باستثناء مع متغير Key ومعدل SETX /M)

@ECHO OFF
REM usage: append_system_path "path"
SET Key="HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > system_path_bak.txt
SETX PATH "%CurrPath%";%1 /M

البدائل

أخيرًا ، من المحتمل أن يكون هناك نسخة محسّنة تسمى SETENV موصى بها من خلال صفحة SETX ss64 التي تقسم إلى إعداد متغيرات بيئة المستخدم أو النظام.


1. ليس صحيحا بدقة

29
icc97

في وقت متأخر من الحفلة - ولكن مفيد إذا كنت بالفعل في الدليل الذي تريد إضافته إلى PATH.

set PATH=%PATH%;%CD%

تحرير: حسب التعليق - يعمل مع ويندوز كمد القياسية ولكن ليس في بوويرشيل.

بالنسبة إلى powerhell ، يكون %CD% المكافئ [System.Environment]::CurrentDirectory

23
nclord

ماذا لو أخطأت في استخدام المسار setx؟ أفضل طريقة هي ببساطة من خلال windows U.I. لوحة التحكم-> كافة عناصر لوحة التحكم-> النظام-> إعدادات النظام المتقدمة-> متغيرات البيئة

قم بالتمرير لأسفل للوصول إلى المسار وحدد تحرير. يمكنك أيضًا نسخها ولصقها في محررك المفضل حتى تتمكن من رؤية المسار بالكامل وتعديله بسهولة أكبر.

19
Thomas Fonseca
  • تغييرات سطر الأوامر لن تكون دائمة ، وسوف تضيع عندما تغلق وحدة التحكم.
  • يعمل المسار كما يأتي أولاً يخدم أولاً.
  • قد ترغب في تجاوز الملفات التنفيذية الأخرى المضمنة بالفعل. على سبيل المثال ، إذا كان لديك بالفعل إصدار آخر على المسار الخاص بك وتريد إضافة إصدار مختلف دون إجراء تغيير دائم في المسار ، فيجب وضع الدليل في بداية الأمر.

لتجاوز بالفعل الملفات التنفيذية المدرجة ؛

اضبط PATH = C:\xampp\php؛٪ PATH٪؛

3
hevi

بغض النظر عن جميع الإجابات ، إذا كنت تريد أن تقوم أداة Nice GUI بتحرير متغيرات بيئة Windows الخاصة بك ، يمكنك استخدام Rapid Environment Editor

جربها! انها آمنة للاستخدام ورائعة!

http://www.rapidee.com/en/

3
Mp de la Vega

التحقق من الاقتراحات أعلاه على Windows 10 LTSB ، ومع لمحة عن الخطوط العريضة "للمساعدة" (التي يمكن عرضها عند كتابة 'command /؟' على cmd) ، أوصلني إلى استنتاج مفاده أن أمر PATH يغير متغير بيئة النظام قيم المسار للجلسة الحالية فقط ، ولكن بعد إعادة التشغيل ، تتم إعادة تعيين جميع القيم إلى الإعدادات الافتراضية الخاصة بها - تمامًا كما كانت قبل استخدام أمر PATH.

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

ولكن من أجل الوضوح ، اعتقدت أن المشاركة هنا في أفضل استخدام لغوي SETX قد يكون مفيدًا لشخص ما في يوم ما:

SETX PATH "%PATH%;C:\path\to\where\the\command\resides"

حيث يجب تجنب أي علامة مساوية '=' ، ولا تقلق بشأن المسافات! ليست هناك حاجة لإدراج أي علامات اقتباس أخرى لمسار يحتوي على مسافات داخله - علامة الانقسام '؛' القيام بهذه المهمة.

تحدد الكلمة الأساسية PATH التي تتبع SETX مجموعة القيم التي يجب تغييرها بين القيم المحتملة لمتغيرات بيئة النظام ، وتخبر٪ PATH٪ (Word PATH المحاطة بعلامة النسبة المئوية) داخل علامات الاقتباس ، نظام التشغيل إلى ترك القائمة قيم PATH كما هي وأضف المسار التالي (المسار الذي يتبع علامة الانقسام '؛') إلى القيم الموجودة.

HTH

1
such_ke_nasdeeq

بخصوص النقطة 2 أنا أستخدم ملف دفعي بسيط يملأ PATH أو متغيرات البيئة الأخرى بالنسبة لي. لذلك ، لا يوجد تلوث لمتغيرات البيئة بشكل افتراضي. يمكن الوصول إلى هذا الملف الدفعي من كل مكان حتى أتمكن من الكتابة:

c:\>mybatchfile
-- here all env. are available
c:\>php file.php
1
Grzegorz Gajos

في موجه الأوامر ، تخبر Cmd باستخدام سطر أوامر Explorer عن طريق إعداده بـ start.

هكذا start Yourbatchname.

لاحظ أنه يتعين عليك التسجيل كما لو كان اسمه batchfile.exe.

يمكن إضافة البرامج والمستندات إلى السجل ، لذا فإن كتابة اسمها دون مسارها في مربع الحوار "بدء - تشغيل" أو يمكن للاختصار Windows من العثور عليها.

هذا ملف ريج عام. انسخ الأسطر أدناه إلى مستند نص جديد واحفظه كـ anyname.reg. قم بتحريره باستخدام البرامج أو المستندات.

في المسارات ، استخدم\لفصل أسماء المجلدات في المسارات الرئيسية ، حيث يستخدم regedit اسمًا واحدًا\لفصل أسماء المفاتيح. جميع ملفات ريج تبدأ مع REGEDIT4. فاصلة منقوطة تحول خطًا إلى تعليق. الرمز @ يعني تعيين القيمة إلى المفتاح بدلاً من القيمة المسماة.

لا يجب أن يكون الملف موجودًا. يمكن استخدام هذا لتعيين Word.exe لفتح Winword.exe.

كتابة start batchfile ستبدأ iexplore.exe.

REGEDIT4
;The bolded name below is the name of the document or program, <filename>.<file extension> 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]

;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".

@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""

;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry

;Informs the Shell that the program accepts URLs.

;"useURL"="1"

;Sets the path that a program will use as its' default directory. This is commented out.

;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"

لقد تم إخبارك بالفعل عن المسار في إجابة أخرى. راجع أيضًا doskey /? للحصول على وحدات ماكرو cmd (تعمل فقط عند الكتابة).

يمكنك تشغيل أوامر بدء التشغيل لـ CMD. من Windows Recource Kit المرجع الفني

التشغيل التلقائي

HKCU\Software\Microsoft\Command Processor 

Data type Range Default value 
REG_SZ  list of commands  There is no default value for this entry.  

وصف

يحتوي على الأوامر التي يتم تنفيذها في كل مرة تبدأ فيها تشغيل Cmd.exe.

0
user6017774

استخدام المسار من أدوات gtools

يفعل الأشياء بطريقة بديهية على سبيل المثال:

pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"

ذلك ويظهر النتائج دون الحاجة إلى تفرخ كمد جديد !

0
womd

البديل الأفضل للوحة التحكم هو استخدام هذا البرنامج المجاني من sourceforge المسمى Pathenator:

https://sourceforge.net/projects/pathenator/

ومع ذلك ، فإنه يعمل فقط مع النظام الذي يحتوي على Dot.Net 4.0 أو أحدث مثل windows 7،8 أو 10.

0
Bill Moore

إذا قمت بتشغيل الأمر cmd ، فسيؤدي ذلك إلى تحديث جميع متغيرات النظام لإطار الأوامر هذا.

0
RBXII3