অন্য কয়েকটি উত্তর / মন্তব্য নোট হিসাবে, ধারণাটি সঠিক যে সঠিকভাবে না হওয়ার পরে স্থান থাকতে হবে। একটি সুপরিচিত উদাহরণ হ'ল আপনি কোনও কমান্ডের পরে কোনও স্থানের প্রয়োজন ছাড়াই ফরওয়ার্ড স্ল্যাশ টাইপ করতে পারেন।
তবে, আরও একটি আচরণ রয়েছে যা কিছুটা কম বোঝা যায়, এবং cd..
আপনি যে " " সম্পর্কে জিজ্ঞাসা করছেন তা মঞ্জুরি দেয় । এই আচরণটি " cd\
" কাজ করার অনুমতি দেয় ।
আপনি যে আচরণটি বর্ণনা করেছেন তা কমান্ড লাইন ইন্টারপ্রেটারের অভ্যন্তরের সমস্ত কমান্ডের সাথে সামঞ্জস্যপূর্ণ। আপনার যদি পিরিয়ড, ফরোয়ার্ড স্ল্যাশ বা ব্যাকস্ল্যাশ সহ নির্দিষ্ট চিহ্ন থাকে তবে পূর্বের অক্ষরগুলি "কমান্ড লাইন ইন্টারপ্রেটার" শেলের (সিএমডি.এক্স.ই.এস. বা এর পূর্বসূরী COMMAND.COM) এর অভ্যন্তরীণ কমান্ড কিনা তা পরীক্ষা করে দেখুন are )।
শব্দটি কোনও ফাইল বা উপ-ডিরেক্টরিকে নির্দেশ করে কিনা তা যাচাই করার আগে এটি করা যেতে পারে। cd
আদেশের ক্ষেত্রে এটি সত্য । দুঃখজনকভাবে, একটি নমুনা তৈরি করার সময়, আমি আবিষ্কার করেছি যে copy
কমান্ডের সাথে এটি ঘটে না , সুতরাং ফলাফলগুলি অসঙ্গত: সমস্ত অভ্যন্তরীণ কমান্ডের সাথে এগুলি অগত্যা একই নয়। অন্যান্য কমান্ড লাইনের সাথে তুলনা করার জন্য আমি আমার অনুসন্ধান চালিয়ে যাইনি del
এবং dir
তাই যদি আপনি কোনও স্থান ছাড়াই ঘটে তার উপর নির্ভর করার চেষ্টা করেন তবে আমি খুব সতর্কতার পরামর্শ দিই।
এখন, প্রশ্নটি ইকো কমান্ড সম্পর্কেও জিজ্ঞাসা করেছিল : এটি একটি অস্বাভাবিক ব্যতিক্রম, এতে আমি মনে করি echo.
ডস বিশেষজ্ঞরা মোটামুটি সুপরিচিত। এটি সম্ভবত নথিভুক্ত ছিল। কমপক্ষে উইন 7 এর সিএমডি- তে আচরণটি হ'ল যদি কমান্ডটি " echo.
" দিয়ে শুরু হয় , তবে প্রথম পর্বটি উপেক্ষা করা হয়। সুতরাং, " echo..hi
" " " এর আউটপুটে পরিণত হয় .hi
। এর কারণটি তাই echo.
একটি ফাঁকা রেখা মুদ্রণ করতে " " ব্যবহৃত হতে পারে। বিপরীতে, ইউনিক্সের সাথে, আপনি echo
নিজেই " " কমান্ডটি চালিয়ে এটি করতে পারেন । তবে ডস-এ, " echo
" কমান্ডটি নিজেই চালানো বর্তমান " প্রতিধ্বনি " সেটিংটি আউটপুট করবে । একইভাবে, ডস " Echo *Off*
" এবং "Echo *On*
"বর্তমানের প্রতিধ্বনি সেটিংকে পরিবর্তন করে এমন বিশেষ মান হিসাবে। আপনি যদি" Off
" শব্দটি মুদ্রণ করতে চান তবে" Echo.Off
"কৌতুকটি করেন (কমপক্ষে মাইক্রোসফ্টের সিএমডি কমান্ড লাইন ইন্টারপ্রেটারের সাম্প্রতিক পর্যায়ে যথেষ্ট সংস্করণ রয়েছে ))
সুতরাং, কমপক্ষে echo
কম্যান্ডের একটি আধা-যুক্তিসঙ্গত ব্যাখ্যা রয়েছে। বাকি কমান্ডগুলির ক্ষেত্রে, আমি ভাবতাম অভ্যন্তরীণ কমান্ডগুলির অগ্রাধিকার ছিল। যাইহোক, আমি যখন কিছু পরীক্ষা করার চেষ্টা করেছি, তখন আমি দেখতে পেলাম যে এটি আসলে বরং বেমানান। আমি এখানে ডকুমেন্টেড কিছু উদাহরণের মাধ্যমে এটি প্রদর্শিত।
এখানে কিছু উদাহরণঃ. আমি একটি উন্নত কমান্ড প্রম্পট ব্যবহার করেছি, যাতে ইউএসি আমার সম্পর্কে মূল ডিরেক্টরিতে লেখার বিষয়ে গ্রিপ না করে। এটি মাইক্রোসফ্ট উইন্ডোজ 7 এর সিএমডি.এক্সই দিয়ে করা হয়েছিল। আমার সন্দেহ হয় আচরণগুলি অন্য সংস্করণগুলির সাথে আলাদা হতে পারে, যেমন পুরানো এমএস-ডস সংস্করণ থেকে COMMAND.COM, বা অন্যান্য সংস্থাগুলি দ্বারা মুক্তিপ্রাপ্ত সফ্টওয়্যার (ডিআর-ডসের COMMAND.COM)।
(এই উত্তরটি ইতিমধ্যে বেশ দীর্ঘ, তাই আমি আমার ফাইল সিস্টেমটিতে যে সমস্ত জগাখিচুড়ি করেছি তা পরিষ্কার করার জন্য কমান্ডগুলি আমি অন্তর্ভুক্ত করছি না clean এখানে খুব সামান্য পরিমাণ পরিষ্কার-পরিচ্ছন্নতা রয়েছে, তবে খুব বেশি কিছু নয়))
এখানে একটি উদাহরণ রয়েছে যা প্রমাণ করে যে অভ্যন্তরীণ কমান্ডটি প্রাধান্য তৈরি করে। (আমি কার্যকরভাবে একটি মন্তব্য হওয়ার জন্য ডাবল কোলন ব্যবহার করার অপেক্ষাকৃত স্বল্প-জ্ঞাত ক্ষমতাও প্রদর্শন করেছি, যা ব্যাচ ফাইলগুলিতেও ভাল কাজ করে Techn প্রযুক্তিগতভাবে, ব্যাচ ফাইলে, এটি একটি লেবেল হিসাবে প্রক্রিয়া করে যা GOTO দ্বারা পৌঁছানো যায় না এবং শেষ হয়) আরইএম কমান্ডের চেয়ে দ্রুত হচ্ছে)
সি: \ কিছু> এমডি সিডি
সি: \ কিছু> প্রতিধ্বনি ইকো সাবডির >> সিডি \ a.bat
সি: \ কিছু> এমডি \ এ
সি: \ কিছু> \ সিডি \ এ.বাট
সাবডির
সি: \ কিছু> :: এটি সাবডির
সি থেকে দৌড়েছিল : \ কিছু> সিডি \ এ
সি: \ এ> :: এটি আমার বর্তমান ডিরেক্টরি বদলেছে, তাই সিডি প্রাধান্য পেয়েছে
আপডেট: আরও পরীক্ষা-নিরীক্ষার পরে, আমি দেখতে পেলাম যে নির্দিষ্ট ডিরেক্টরিটিতে কোনও সময়সীমা অন্তর্ভুক্ত না করা হলে কেবল অভ্যন্তরীণ সিডি কমান্ড ফাইল সিস্টেমের চেয়ে বেশি অগ্রাধিকার গ্রহণ করে। সুতরাং আপনার যদি " a.bat " নামে একটি ডিরেক্টরি থাকে তবে আপনি " **cd\a.bat**
" চালাতে পারবেন এবং ব্যাচ ফাইলটি চলবে।
কম সাধারণ আচরণের এই অন্বেষণ (যেহেতু বেশিরভাগ ডিরেক্টরিগুলিতে সম্ভবত তাদের মধ্যে পিরিয়ড থাকে না) আমাকে আমার অনুসন্ধানগুলি আপডেট করতে পরিচালিত করে। দেখা যাচ্ছে যে সিডি কমান্ড আসলে কপি কমান্ডের সাথে আমার অনুরোধের চেয়ে আরও বেশি একই রকম আচরণ করছে ।
যদিও আমি প্রথমে ভেবেছিলাম সিডি এবং অনুলিপি কমান্ডগুলি আলাদা আচরণ করছে, আমি এখন বুঝতে পেরেছি যে এটি যে নামগুলি সরবরাহ করছিলাম সেটির কারণেই। তবুও, আমি আমার পূর্ববর্তী ফলাফলগুলি পর্যালোচনা করেছি এবং নির্ধারিত করেছি যে আমার আগের নথিভুক্ত পরীক্ষাগুলি যখন কোনও নামের সাথে একটি সময় এবং এক্সটেনশান অন্তর্ভুক্ত করে এবং তখন তা ঘটে না তার মধ্যে কিছু পার্থক্য দেখাতে সহায়তা করে। সুতরাং, আমি এখনও নীচে আমার পুরানো ফলাফলগুলি অন্তর্ভুক্ত করছি (বেশিরভাগ অপরিবর্তিত, তবে খুব সামান্য আপডেটের সাথে আমি যা বলি তা সঠিক)।
সম্পূর্ণ উদাহরণ সহ অনুলিপি প্রদর্শনের একটি উদাহরণ এখানে সিডি হিসাবে একই নজির (অভ্যন্তরীণ কমান্ডের পক্ষে) ব্যবহার করে না যখন কোনও এক্সটেনশন ব্যবহৃত হয়:
সি: \ কিছু> প্রতিধ্বনিত মূল >> \ ট্রাই.বাট
সি: \ কিছু> এমডি অনুলিপি
সি: \ কিছু> প্রতিধ্বনি উপ-ডিরেক্টরি >> অনুলিপি \ চেষ্টা.ব্যাট
সি: \ কিছু> \ অনুলিপি \ সাব-
ডাইরেক্টরি সাব- ডাইরেক্টরি
সি: \ কিছু> কপি \ ট্রাই.বাট
সাব-ডিরেক্টরী
সি: \ কিছু> :: হু? কেন যে ওভাররাইড এবং মূল থেকে চালানো হয়নি?
সি: \ কিছু> :: স্পষ্টতই, একটি উপ-ডিরেক্টরি এবং পূর্ণ ফাইল নাম পরীক্ষা করার জন্য অভ্যন্তরীণ অনুলিপি কমান্ডটির অগ্রাধিকার ছিল না (যদিও ডিরেক্টরিটির কোনও এক্সটেনশন ছিল না, অভ্যন্তরীণ সিডি কমান্ড অগ্রাধিকার নিয়েছিল)
সি: \ কিছু> ::
সি: \ কিছু>:: আরেকটি পরীক্ষা: আমি
সি: \ কিছু> \ কপি .. period ট্রাই.ব্যাট
সাব-ডিরেক্টরী
সি: \ কিছু> :: ঠিক আছে, দুর্দান্ত at তবে তারপরে এটি উপ-ডিরেক্টরি যাচাই করবে না:
সি: \ কিছু> অনুলিপি .. \ চেষ্টা করুন bat
1 ফাইল (গুলি) অনুলিপি করা হয়েছে।
সি: \ কিছু> :: এটি অভ্যন্তরীণ অনুলিপি কমান্ড চালিয়েছিল
আমার প্রাথমিক অনুসন্ধানগুলি ইঙ্গিত করেছে যে এই ফলাফলগুলি প্রমাণ করে যে কমান্ড লাইনের শেলটি অগ্রাধিকার দেয়:
- অভ্যন্তরীণ কমান্ডের নামের পরে ঠিক একটি ব্যাকস্ল্যাশ নির্দিষ্ট করার সময় ফাইল সিস্টেমে (অভ্যন্তরীণ অনুলিপি কমান্ডের পরিবর্তে )
- অভ্যন্তরীণ সিডি কমান্ডের (ফাইল সিস্টেমের পরিবর্তে) অভ্যন্তরীণ কমান্ডের নামের পরে একটি ব্যাকস্ল্যাশ নির্দিষ্ট করার সময়।
- অভ্যন্তরীণ কমান্ডের নামের পরে একটি সময় নির্দিষ্ট করার সময় অভ্যন্তরীণ অনুলিপি কমান্ডে (ফাইল সিস্টেমের পরিবর্তে) to
এটি স্পষ্টভাবে দেখায় যে আচরণটি অনুলিপি করে না অনুলিপি কমান্ড (একটি এক্সটেনশন সহ পুরো ফাইল নাম সহ) এবং সিডি কমান্ড (ডিরেক্টরি নামের অংশ হিসাবে এক্সটেনশন ছাড়াই)। ব্যাকস্ল্যাশ ব্যবহার করার সময়, অনুলিপি কমান্ড (সম্পূর্ণ ফাইলের নাম এক্সটেনশন সহ) প্রথমে ফাইল সিস্টেম পরীক্ষা করে দেখবে, তবে সিডি কমান্ডটি (ডিরেক্টরিতে কোনও এক্সটেনশন না থাকলে) পরীক্ষা করবে না।
(আপডেট: প্রথমে, আমি ভেবেছিলাম যে অসঙ্গতিগুলি প্রোগ্রামগুলির মধ্যে বিভিন্ন আচরণের ভিত্তিতে ছিল। পরে, আমি আবিষ্কার করেছি যে অসঙ্গতি বিদ্যমান ছিল, তবে প্রদত্ত প্যারামিটারগুলির কারণে এটি আরও বেশি হয়েছিল caused)
আসলে, এমনকি বুলেট পয়েন্টগুলিও পুরোপুরি সঠিক নয়, যদিও আমি কেবল বলেছি প্রত্যেকটি পৃথক জিনিসকে প্রদর্শন করে দেখছি। সমস্যাটি হ'ল, বুলেট পয়েন্টগুলির তালিকাটি সম্পূর্ণ নির্ভুল হওয়ার পক্ষে যথেষ্ট সঠিক নয়। (আমি বিষয়গুলিকে অপ্রয়োজনীয় রেখেছি যাতে এই বুলেট পয়েন্টগুলি তুলনামূলকভাবে সহজে তুলনা করা যায় এবং তুলনামূলকভাবে সহজে পরীক্ষা করা যায়))
তবে, আরও নির্ভুলভাবে বলতে গেলে, প্রথম বুলেট পয়েন্টটি নির্দেশ করে যে কমান্ড লাইনের শেলটি অগ্রাধিকার দেয়:
- ফাইলসিস্টেম (অভ্যন্তরীণ পরিবর্তে করার কপি কমান্ড) যখন একটি ব্যাকস্ল্যাশ উল্লেখ এবং সম্পূর্ণ পথ বাকি তারপর, পরে অভ্যন্তরীণ কমান্ডের নাম
নীচে দেখানো হবে যে আমি কেন এই পার্থক্য করছি:
সি: \ অন্য কোথাও> এই রেখার জন্য প্রতিধ্বনি UAC উচ্চতা >> >> needext
C: \ অন্য কোথাও> এই রেখার জন্য ইকো ইউএসি উচ্চতা প্রয়োজন >> \ needext.bat
C: \ অন্য কোথাও> এমডি \ কপি করুন
: \ অন্যত্র> প্রতিধ্বনি @ ইকো সাবডির >> অনুলিপি করুন \ needext.bat
C: \ অন্য কোথাও> \ অনুলিপি \ needext
সাবডির
সি: \ অন্যত্র> অনুলিপি করুন e
needext.bat সাবডির
সি: \ অন্যত্র> অনুলিপি করুন \ needext
1 ফাইল (গুলি) অনুলিপি করেছেন।
সি: \ অন্যত্র> :: ইউএসি পরবর্তী লাইনগুলির জন্যও দরকার
: সি: where অন্যত্র> ডেল \ needext
সি: \ অন্যত্র> ডেল \ needext.bat
(মনে রাখবেন যে সর্বশেষ অনুলিপি কমান্ডটি \ needext নামক ফাইলটির সন্ধান করেছিল , কারণ অভ্যন্তরীণ অনুলিপি কমান্ড ব্যবহৃত হয়েছিল \ ফাইল \ needext.bat কেবল সহজেই এটি দেখানোর জন্য তৈরি করা হয়েছিল যে কমান্ড লাইনগুলি এই শব্দটির অনুলিপিটি অন্তর্ভুক্ত করে না never ।)
এই মুহুর্তে, যখন ব্যাকস্ল্যাশ ব্যবহার করা হয় তখন আমি কিছু অসঙ্গতি স্থাপন করেছি ( অনুলিপি আদেশের আচরণের সাথে ) ...
এরপরে আমি দেখাব যে এই কমান্ডগুলির মধ্যে কিছু ধারাবাহিকতা রয়েছে। (সুতরাং, ধারাবাহিকতা আছে ... ওম ... কখনও কখনও। আমাদের কেবল ধারাবাহিকতা থাকতে পারে, অসামঞ্জস্যভাবে।) আমি পরবর্তীটি যা দেখাব তা হ'ল সিডি কমান্ডটি সময়কাল ব্যবহার করার সময় কপি কমান্ডের মতো আচরণ করে । কপি কমান্ড অভ্যন্তরীণ কমান্ড ব্যবহার করে, এবং তাই করে সিডি কমান্ড।
সি: \ কিছু> MD \ yetmore।
সি: \ কিছু> সিডি \ yetmore।
সি: \ কিছু \ yetmore> MD \ মো।
সি: \ কিছু \ yetmore> প্রতিধ্বনি প্রতিধ্বনি subdir >> MD \ test.bat
সি: \ কিছু \ yetmore> । d এমডি। \ পরীক্ষা
সাবডির
সি: \ কিছু \ yetmore> এমডি \ পরীক্ষা
সি: \ কিছু \ yetmore> এমডি \ পরীক্ষা
একটি উপ-ডিরেক্টরি বা ফাইল \ পরীক্ষা ইতিমধ্যে বিদ্যমান exists
সি: \ কিছু \ এখনও>> ত্রুটিটি দেখায় যে আমরা অভ্যন্তরীণ কমান্ডটি চালিয়েছি ran
সি: \ কিছু \ ততক্ষণে> এমডি .. \ পরীক্ষা
সি: \ কিছু \ তত্পর> এমডি। d সিডি
সি: \ কিছু \ তবুও> কপি \ এমডি সিডি
। \ এমডি \ টেস্ট.ব্যাট
১ ফাইল (গুলি) অনুলিপি করেছে।
সি: \ কিছু \ ততক্ষণে> \ সিডি। \ পরীক্ষার
সাবডির
সি: \ কিছু \ তত্পর> সিডি। \ পরীক্ষা
সি: \ কিছু \ তবুও \ পরীক্ষা> :: অভ্যন্তরীণ কমান্ডটি একটি সময়ের সাথে কাজ করেছে
সি: \ কিছু \ তবুও \ পরীক্ষা> সিডি ..
সি: \ কিছু \ ততক্ষণে> \ সিডি .. \ পরীক্ষা
সাবডির
সি: \ কিছু \ তবুও>> সিডি .. \ পরীক্ষা
সি: \ কিছু \ পরীক্ষা> :: অভ্যন্তরীণ কমান্ডও অগ্রাধিকার নিয়েছিল যখন দুটি পিরিয়ড হয় ব্যবহৃত
সুতরাং, প্রাথমিক পরীক্ষার অধিবেশন যা বেশিরভাগ সিডি এবং অনুলিপি কমান্ডগুলিতে ( এমডির কিছু অতিরিক্ত ব্যবহার এবং কিছুটা ডেল দিয়ে ) ফোকাস করেছিল , কেবলমাত্র সেই সময়টিই ছিল যে আমরা প্রকৃতপক্ষে ফাইল সিস্টেমকে অগ্রাধিকার দিয়েছিলাম কপি কমান্ডের সাথে এবং তারপরে ফাইলপথটি কেবল যখন পুরো পথটি ব্যবহার করে তখন অগ্রাধিকার গ্রহণ করে।
পরবর্তী পর্যালোচনা করার পরে, আমি দেখতে পেলাম যে এক্সটেনশন ব্যবহার করার সময় সিডি কমান্ড ফাইল সিস্টেমকেও প্রাধান্য দিয়েছিল। কমপক্ষে এর অর্থ অভ্যন্তরীণ কমান্ডগুলি একে অপরের সাথে কিছুটা সামঞ্জস্যপূর্ণ আচরণ করা হচ্ছে। যাইহোক, এর অর্থ এটিও হ'ল আমরা ফাইল-সিস্টেম বস্তুর (ফাইল বা ডিরেক্টরি) নামের উপর ভিত্তি করে ভিন্ন আচরণ পাই। দেখে মনে হয় যে আচরণটি কিছু সত্যই, সত্যিই অস্পষ্ট অভ্যন্তরীণ যুক্তি ব্যবহার করছে। অতএব, বিভিন্ন অপারেটিং সিস্টেমগুলিতে কাজ করার জন্য এই আচরণটি গণনা এমন একটি বিষয় যা আমি সম্ভবত করণে অনিরাপদ বলে বিবেচনা করব।