ویندوز ۱۱ در ظاهر یک سیستمعامل کاملاً مدرن است، اما در بخشهایی از ساختار فایل و خط فرمان هنوز ردپای تصمیمهایی دیده میشود که دههها پیش و در دوران DOS شکل گرفتهاند. نامهایی مثل CON و NUL، شروع شدن درایو سیستم از C: و حتی شکل عجیب بعضی مسیرها نتیجه همین سازگاری طولانیمدت با نرمافزارهای قدیمی است. ویندوز برای حفظ سازگاری با برنامهها و اسکریپتهای قدیمی بسیاری از این رفتارها را همچنان حفظ کرده است.
این موضوع فقط جنبه تاریخی ندارد. بعضی از این قوانین هنوز هنگام کار با فایلها، Command Prompt و اسکریپتهای ویندوز ۱۱ اهمیت دارند و دانستن آنها میتواند علت برخی رفتارهای عجیب ویندوز را روشن کند.
چرا ویندوز اجازه ساخت فایل با نام CON و NUL را نمیدهد؟
اگر در ویندوز بخواهید فایلی با نام CON ایجاد کنید، سیستم اجازه این کار را نمیدهد. همین محدودیت برای نامهایی مانند PRN و AUX و NUL و همچنین COM1 تا COM9 و LPT1 تا LPT9 وجود دارد. حتی اضافه کردن پسوند هم مشکل را حل نمیکند؛ بنابراین نامهایی مانند CON.txt یا NUL.pdf نیز به عنوان نام معمولی فایل قابل استفاده نیستند.
دلیل این رفتار به دوران DOS برمیگردد. این نامها در آن زمان به جای فایل معمولی برای دسترسی به تجهیزات سیستم استفاده میشدند. CON به کنسول مربوط بود و PRN برای چاپگر استفاده میشد. AUX نیز به تجهیزات ارتباطی کمکی و NUL به مقصدی برای دور ریختن خروجی اشاره داشت. این مفهوم بعدها در محیطهای جدیدتر ویندوز نیز برای سازگاری حفظ شد.
بنابراین اگر هنگام تغییر نام یک فایل با پیام نامعتبر بودن نام دستگاه روبهرو شدید، لزوماً مشکلی در File Explorer وجود ندارد؛ ممکن است نام انتخابشده یکی از نامهای رزروشده قدیمی ویندوز باشد.
چرا درایو ویندوز معمولاً با C شروع میشود؟
یکی از قدیمیترین چیزهایی که کاربران ویندوز با آن روبهرو میشوند، حروف درایوها است. در بیشتر رایانههای امروزی درایو نصب ویندوز با C: نمایش داده میشود و درایوهای بعدی معمولاً حروف دیگری مانند D: یا E: میگیرند.
ریشه این ترتیب به رایانههای مجهز به فلاپیدیسک برمیگردد. در دوران DOS حرف A: برای فلاپی اول و B: برای فلاپی دوم استفاده میشد. با ورود هارددیسک به رایانههای شخصی، حرف بعدی یعنی C: برای آن در نظر گرفته شد. IBM نیز در نخستین رایانه شخصی خود از دو درایو فلاپی استفاده میکرد و فلاپیها برای ذخیره و انتقال نرمافزار و اطلاعات اهمیت زیادی داشتند.
امروز ویندوز حتی میتواند یک حجم ذخیرهسازی را بدون اختصاص حرف درایو و به صورت یک پوشه در اختیار کاربر قرار دهد. با این حال C: همچنان انتخاب معمول برای درایو سیستم باقی مانده است. دلیل مهم آن حجم بسیار زیادی از نرمافزارها و اسکریپتهایی است که طی دههها به این فرض وابسته شدهاند.
تفاوت C:Data و C:Data در ویندوز چیست؟
یکی از نکات مهم در Command Prompt تفاوت میان مسیرهایی مانند C:Data و C:Data است. این دو عبارت شبیه یکدیگر هستند اما الزاماً به یک محل اشاره نمیکنند.
C:Data یک مسیر کامل است و از ریشه درایو C: شروع میشود. در مقابل C:Data یک مسیر وابسته به پوشه جاری درایو C: است. به همین دلیل ممکن است با تغییر محل فعلی در Command Prompt نتیجه استفاده از مسیر دوم نیز تغییر کند. مستندات مایکروسافت نیز این تفاوت را بخشی از رفتار قدیمی مسیرهای DOS و ویندوز معرفی میکند.
به همین دلیل هنگام نوشتن اسکریپتهای Batch یا اجرای دستورات مهم، اگر منظورتان دقیقاً یک پوشه مشخص است بهتر است از مسیر کامل استفاده کنید. به عنوان مثال اگر هدف پوشهای در ریشه درایو باشد، شکل C:Data از مسیر وابسته C:Data واضحتر و قابل پیشبینیتر است.
این رفتار به زمانی برمیگردد که DOS برای هر درایو میتوانست محل فعلی آن درایو را جداگانه در نظر بگیرد. ویندوز برای حفظ سازگاری با چنین نرمافزارهایی همچنان بخشهایی از این منطق را پشتیبانی میکند.
علت نمایش نامهایی مثل PROGRA~1 در ویندوز چیست؟
اگر هنگام کار با Command Prompt یا بعضی نرمافزارهای قدیمی با عبارتی مثل PROGRA~1 مواجه شدهاید، این نام تصادفی نیست. چنین نامهایی به سیستم قدیمی 8.3 مربوط هستند که در آن نام فایل حداکثر هشت نویسه و پسوند حداکثر سه نویسه داشت.
با پشتیبانی ویندوز از نامهای طولانیتر، برای بسیاری از فایلها امکان ایجاد یک نام کوتاه سازگار با استاندارد قدیمی نیز باقی ماند. این نام کوتاه معمولاً با علامت ~ دیده میشود و به همین دلیل پوشهای مانند Program Files ممکن است در بعضی محیطهای قدیمی با شکل کوتاهشده نمایش داده شود.
در ویندوز ۱۱ نیز پشتیبانی از نامهای 8.3 همچنان وجود دارد، هرچند ایجاد این نامهای کوتاه میتواند بسته به تنظیمات فایلسیستم یا حجم ذخیرهسازی متفاوت باشد. دستور fsutil 8dot3name برای مشاهده و مدیریت این قابلیت در ویندوز وجود دارد.
بهتر است این نامهای کوتاه را بدون دلیل حذف نکنید. مایکروسافت هشدار میدهد که حذف دائمی بعضی نامهای 8.3 میتواند برای نرمافزارهایی که هنوز به آنها وابستهاند مشکل ایجاد کند و حتی در برخی شرایط باعث اختلال در حذف برنامهها شود.
چرا دستور . در Command Prompt تقریباً همه فایلها را پیدا میکند؟
عبارت *.* یکی دیگر از میراثهای دوران DOS است. علامت * در Command Prompt به عنوان Wildcard برای جایگزین کردن بخشی از نام فایل استفاده میشود. دستور dir نیز همچنان از این الگوها پشتیبانی میکند.
در نگاه اول ممکن است تصور کنید *.* فقط فایلهایی را پیدا میکند که حتماً یک نقطه و پسوند داشته باشند، اما تاریخچه سیستم نامگذاری قدیمی باعث شده رفتار آن با این برداشت ساده یکسان نباشد. ساختار 8.3 فایلها نام اصلی و پسوند را به شکل جداگانه مدیریت میکرد و ویندوز برای حفظ سازگاری بخشی از رفتارهای قدیمی را نگه داشته است.
امروزه dir همچنان از * و ? برای جستوجوی گروهی فایلها استفاده میکند. برای مثال dir *.txt فایلهایی را که با الگوی موردنظر مطابقت دارند نمایش میدهد. مایکروسافت همچنین اشاره میکند که Wildcardها در dir میتوانند تحت تأثیر نگاشت نامهای کوتاه قرار بگیرند و در بعضی شرایط نتایج غیرمنتظره ایجاد کنند.
چرا این قوانین قدیمی هنوز در ویندوز ۱۱ وجود دارند؟
پاسخ اصلی را باید در سازگاری عقبرو جستوجو کرد. ویندوز امروزی دیگر محدودیتهای سختافزاری و نرمافزاری دوران DOS را ندارد، اما تعداد زیادی برنامه و اسکریپت در طول دههها بر اساس همان قراردادها ساخته شدهاند.
تغییر ناگهانی رفتار نامهای رزروشده، مسیرهای درایو، نامهای 8.3 یا Wildcardها میتوانست برنامههای قدیمی، نصبکنندهها و اسکریپتها را از کار بیندازد. مستندات مایکروسافت نیز هنوز بخشهایی از همین رفتارها را در Windows 11 و ابزارهای خط فرمان فعلی مستند میکند.
به همین دلیل ممکن است هنگام کار با ویندوز ۱۱ با چیزهایی مواجه شوید که در نگاه اول بیدلیل به نظر برسند؛ از غیرقابل استفاده بودن نام CON گرفته تا وجود درایو C: و نمایش نامهایی مانند PROGRA~1. بسیاری از این موارد در واقع قطعاتی از تاریخ چند دههای ویندوز هستند که برای حفظ سازگاری همچنان زنده ماندهاند.
سادهگو