سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ ali
متغیر‌های PATH در ویندوز ؟
محسن موحد حل شده توسط محسن موحد

این سوالم رو به بهانه این جلسه و اینکه تو فرآیند نصب بهش برخوردیم می‌پرسم . 

وقتی به طور کلی هم سرچ می‌کنیم . صرفا توی ویندوز میگه متغیر‌های PATH رو اگه شما اضافه نکنید نمی‌تونید از توی ترمینال پایتون رو فراخوانی کنید . 
صرفا حد اطلاعات عمومی میشه توضیح بدین نقش متغیر‌های PATH توی ویندوز چیه ؟ آیا اینه صرفا زبون‌های برنامه نویسی اند ؟ اصن اینکه میگیم متغیر یعنی چی ؟ 

سلام،

متغیرهای PATH توی ویندوز به سیستم میگن که وقتی یه دستور (مثل python یا مثلا mysql یا node و ...) توی CMD یا هر کامندلاین دیگه‌ای مثل پاورشل، گیت بش و ... تایپ می‌کنی، از کجا باید اون برنامه رو پیدا کنه. این فقط برای زبان‌های برنامه‌نویسی نیست، بلکه برای هر برنامه‌ایه که بخوای از هرجای سیستم اجراش کنی. متغیر هم در واقع یه مقدار یا آدرس ذخیره‌شده‌ست که سیستم ازش استفاده میکنه.

درواقع PATH یکی از متغیرهای محیطی (environment variables) سیستم عامله که به سیستم میگه کجا دنبال فایل‌های اجرایی بگرده تا از هرجایی توی خط فرمان قابل دسترسی باشن.

محسن موحد ۰۵ شهریور ۱۴۰۳، ۱۲:۳۵

اینجور که من از توضیح شما متوجه شدم . اینکه CMD وقتی می‌خواد دستوری رو اجرا کنه . خب یا یک چیزی مثل دستورات مربوط به دایرکتوری و اینا میشه مثل cd و... که به صورت دیفالت میره انجام میده . یا چیز دیگه ای ... 
اون چیز‌های دیگه رو این باید بره سرچ کنه و اگر میشناخت اجرا کنه . در اینجا ما میایم . برخی دستورات برنامه‌ها رو که می‌خوایم دقیقا تو همون پوشه‌ها قرار می‌دیم یا ایتنکه آدرس پوشه رو به متغیر PATH اضافه می‌کنیم . تا سیستم بره اون مسیر‌ها بگرده و اگه توی اون‌ها قرار داشت برنامه اش رو اجرا کنه . 

حالا سوالم اینجاست که دستورات مثل ping  هم جزو همین‌ها هستند ؟ یعنی یه برنامه قایل .exe نوشته شده اند یا نه عملا دستورند . البته چون ورودی دارن احتمالا دستور باشن . و البته توی خود پوشه‌های متغیر PATH ویندوزم هم پیداشون نکردم . اما خب توی یه سایت که قبل از پاسخ شما در مورد environment variable خوندم نوشته بود این‌ها هم جزو متغیر‌ها هستند که خب کلا منظورش رو نفهمیدم :) 

از بقیه متغیر‌ها هم میشه سوال کرد :) مثل پوشه TEMP ویندوز که زیاد اسمش رو شنیدم که ایشالله اینا رو می‌ذارم بعدا در ادامه آموزش زمان کاربردش می‌پرسم که از بحث خیلی فاصله نگیره .  

ali ۰۵ شهریور ۱۴۰۳، ۱۲:۵۷

بله، دستوراتی مثل ping هم واقعاً برنامه‌هایی با پسوند .exe هستن، یعنی همون فایل‌های اجرایی. این دستورات توی پوشه‌های سیستمی ویندوز مثل C:\Windows\System32 قرار دارن.

حالا وقتی میخوای مثلاً ping رو توی CMD اجرا کنی، ویندوز میره تمام مسیرهایی که توی متغیر PATH تعریف شدن رو چک میکنه تا ببینه فایل اجرایی ping.exe توی کدوم یکی از اون مسیرها پیدا میشه. اگه پیداش کنه، اجراش میکنه. فایل‌هایی مثل ping.exe توی پوشه‌ System32 یا SysWOW64 قرار دارن. این پوشه‌ها معمولاً توی مسیر PATH هستن(اگر ویندوزت 10 یا 11 هست PATHای که در باکس پایین وجود داره رو ببینید)، به همین خاطر وقتی دستور ping رو توی CMD تایپ میکنی، ویندوز م‌یدونه که باید بره توی این پوشه‌ها دنبال فایل اجرایی بگرده.


پوشه‌ی TEMP یا همون Temp یه جورایی مثل سطل آشغال موقته. هر وقت برنامه‌ها نیاز دارن فایل‌های موقتی بسازن و بعد از یه مدت پاکشون کنن، از این پوشه استفاده میکنن. این پوشه هم یکی از متغیرهای محیطی داره که مسیرش رو مشخص میکنه.

بهترین پاسخ
محسن موحد ۰۵ شهریور ۱۴۰۳، ۱۴:۵۶