موجه الأوامر - كيفية إضافة مسار محدد فقط من أجل تنفيذ هذا الملف الدفعي؟

سئل على ٢٦ يوليو ٢٠١١  ·  تمت مشاهدة 569.8k مرة  ·  مصدر

michael picture
في ٢٦ يوليو ٢٠١١

في الأساس ، أعلم أنه يمكنني المرور عبر لوحة التحكم الخاصة بي وتعديل متغير المسار. ولكن ، أتساءل عما إذا كانت هناك طريقة لتضمين مسار مؤقت من خلال البرمجة المجمعة؟ بهذه الطريقة يتم استخدامه فقط أثناء تنفيذ الملف الدفعي. لا أريد أن يدخل الأشخاص ويعدلون متغيرات المسار الخاصة بهم فقط لاستخدام ملف الدُفعات الخاص بي.

الإجابات

Mat picture
في ٢٦ يوليو ٢٠١١
330

تمامًا مثل أي متغير بيئة آخر ، مع SET :

SET PATH=%PATH%;c:\whatever\else

إذا كنت تريد إجراء فحص أمان بسيط أولاً ، فتحقق لمعرفة ما إذا كان المسار الجديد موجودًا أولاً:

IF EXIST c:\whatever\else SET PATH=%PATH%;c:\whatever\else

إذا كنت تريد أن يكون ذلك محليًا لهذا الملف الدفعي ، فاستخدم setlocal :

setlocal
set PATH=...
set OTHERTHING=...

@REM Rest of your script

اقرأ المستندات بعناية مقابل setlocal / endlocal ، وألق نظرة على المراجع الأخرى على هذا الموقع - الوظائف ممتعة جدًا وصياغة الجملة صعبة.

يجب أن تبدأ صفحة بناء الجملة بالأساسيات.

18446744073709551615 picture
في ٣ يوليو ٢٠١٧
22

هناك تفصيل مهم:

set PATH="C:\linutils;C:\wingit\bin;%PATH%"

لا يعمل ، بينما

set PATH=C:\linutils;C:\wingit\bin;%PATH%

يعمل. الفرق هو الاقتباسات!

UPD انظر أيضا التعليق من قبل venimus

dumbak picture
في ١٦ أكتوبر ٢٠١٣
21

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

setx ENV_VAR_NAME "DESIRED_PATH" /m

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