উইন্ডোজ কমান্ড লাইনে কেন "সিডি .." কাজ করে?


86

যখন টাইপ cd..মধ্যে একটি স্থান ছাড়া cdএবং ..উইন্ডোজ কম্যান্ড প্রম্প্ট সুখে উর্ধ্বস্থ ফোল্ডারে পাল্টে যাবে। এই আচরণের কোনও ব্যাখ্যা আছে কি? কমান্ডটি এর মানক বিন্যাস অনুসরণ করে নাcommand<space>arguments

কাজ কিন্তু করা উচিত নয়?

এছাড়াও, কেন এটি ধারাবাহিক ফলাফল তৈরি করে না?

echo ..


24
আপনার প্রশ্নের ভিত্তি ভেঙে গেছে বলে মনে হচ্ছে। আপনার দাবির পক্ষে এমন কোনও প্রমাণ সরবরাহ করতে পারবেন যে এটি সিনট্যাক্টিক্যালি ভুল?
অরবিট

13
আমি মনে করি না "কমান্ড <স্পেস> আর্গুমেন্টস" কখনও সেন্টিমিডিতে স্ট্যান্ডার্ড ফর্ম্যাট হয়েছে (বা এর কোনও পূর্বসূরি); উদাহরণস্বরূপ dir/aবা অনুরূপ ভিএমএস সিনট্যাক্স বিবেচনা করুন।
মাধ্যাকর্ষণ

6
সিডি খুব বিশেষ। আপনি cd c:\program filesউদ্ধৃতিগুলি ছাড়াই টাইপ করতে পারেন এবং এটি এখনও কার্যকর হয়
ফুচলভি

20
এখানে একটি খুব বিনোদনমূলক নিবন্ধ যা উইন্ডোজ শেল লজিকের
সান্নিধ্য সম্পর্কে

3
cd..কাজ করে কেন ? কারণ মাইক্রোসফ্ট সুস্পষ্টভাবে এটিকে কাজ করে তোলার ঝামেলা পেরেছে। cdউইন্ডোজের কমান্ড ইন্টারপ্রেটারে নির্মিত একটি কমান্ড এবং মাইক্রোসফ্ট তাদের দোভাষীকে যা খুশি তাই করতে পারে। (অন্য একটি উদাহরণ হিসাবে, cdনামের মধ্যে ফাঁকা জায়গা সহ ডিরেক্টরিগুলিও উদ্ধৃত করার দরকার নেই))
জেমসডলিন

উত্তর:


106

অন্য কয়েকটি উত্তর / মন্তব্য নোট হিসাবে, ধারণাটি সঠিক যে সঠিকভাবে না হওয়ার পরে স্থান থাকতে হবে। একটি সুপরিচিত উদাহরণ হ'ল আপনি কোনও কমান্ডের পরে কোনও স্থানের প্রয়োজন ছাড়াই ফরওয়ার্ড স্ল্যাশ টাইপ করতে পারেন।

তবে, আরও একটি আচরণ রয়েছে যা কিছুটা কম বোঝা যায়, এবং 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 সিডি
সি: \ কিছু \ তবুও> কপি \ এমডি সিডি
। \ এমডি \ টেস্ট.ব্যাট
        ১ ফাইল (গুলি) অনুলিপি করেছে।

সি: \ কিছু \ ততক্ষণে> \ সিডি। \ পরীক্ষার
সাবডির

সি: \ কিছু \ তত্পর> সিডি। \ পরীক্ষা
সি: \ কিছু \ তবুও \ পরীক্ষা> :: অভ্যন্তরীণ কমান্ডটি একটি সময়ের সাথে কাজ করেছে
সি: \ কিছু \ তবুও \ পরীক্ষা> সিডি ..
সি: \ কিছু \ ততক্ষণে> \ সিডি .. \ পরীক্ষা
সাবডির

সি: \ কিছু \ তবুও>> সিডি .. \ পরীক্ষা
সি: \ কিছু \ পরীক্ষা> :: অভ্যন্তরীণ কমান্ডও অগ্রাধিকার নিয়েছিল যখন দুটি পিরিয়ড হয় ব্যবহৃত

সুতরাং, প্রাথমিক পরীক্ষার অধিবেশন যা বেশিরভাগ সিডি এবং অনুলিপি কমান্ডগুলিতে ( এমডির কিছু অতিরিক্ত ব্যবহার এবং কিছুটা ডেল দিয়ে ) ফোকাস করেছিল , কেবলমাত্র সেই সময়টিই ছিল যে আমরা প্রকৃতপক্ষে ফাইল সিস্টেমকে অগ্রাধিকার দিয়েছিলাম কপি কমান্ডের সাথে এবং তারপরে ফাইলপথটি কেবল যখন পুরো পথটি ব্যবহার করে তখন অগ্রাধিকার গ্রহণ করে।

পরবর্তী পর্যালোচনা করার পরে, আমি দেখতে পেলাম যে এক্সটেনশন ব্যবহার করার সময় সিডি কমান্ড ফাইল সিস্টেমকেও প্রাধান্য দিয়েছিল। কমপক্ষে এর অর্থ অভ্যন্তরীণ কমান্ডগুলি একে অপরের সাথে কিছুটা সামঞ্জস্যপূর্ণ আচরণ করা হচ্ছে। যাইহোক, এর অর্থ এটিও হ'ল আমরা ফাইল-সিস্টেম বস্তুর (ফাইল বা ডিরেক্টরি) নামের উপর ভিত্তি করে ভিন্ন আচরণ পাই। দেখে মনে হয় যে আচরণটি কিছু সত্যই, সত্যিই অস্পষ্ট অভ্যন্তরীণ যুক্তি ব্যবহার করছে। অতএব, বিভিন্ন অপারেটিং সিস্টেমগুলিতে কাজ করার জন্য এই আচরণটি গণনা এমন একটি বিষয় যা আমি সম্ভবত করণে অনিরাপদ বলে বিবেচনা করব।


"আপনি যে আচরণটি বর্ণনা করেছেন তা কমান্ড লাইন ইন্টারপ্রেটারের অভ্যন্তরের সমস্ত কমান্ডের সাথে সামঞ্জস্যপূর্ণ।" ipconfigযেমন কাজ করে।
জোনাস কুরিটজ

@ জোনাসকুরিটজ: না। আপনি " আইপিসনফিগ " কমান্ডের ঠিক পরে একটি (ফরোয়ার্ড) স্ল্যাশ রাখতে পারেন এবং এটি কাজ করবে, যেমন IPCONFIG/ALL। যাইহোক, আমি যে বিষয়ে কথা বলছিলাম তা নয়। " আপনি যে আচরণটি বর্ণনা করেন " (আপনার প্রশ্নে) হ'ল কমান্ড নামের ঠিক পরে পিরিয়ড রাখার আচরণ। যদি আমি টাইপ করি IPConfig.তবে একটি কমান্ড পাওয়া যায় নি সে সম্পর্কে একটি ত্রুটি পাই। একইভাবে (যদিও এটি আপনি বর্ণনা করছেন এমন আচরণের সাথে সম্পর্কিত নয়), যদি আমি টাইপ করি IPCONFIG\ALLতবে .\IPCONFIG\ALL.BATআমি তৈরি একটি কাস্টম ফাইল চালাতে পারি। সুতরাং /এর মত .বা treated \ `
TOGG

1
আমি আপনার উত্তরটি গ্রহণ করার জন্য এটি তৈরির কাজটি এবং গবেষণাটি গ্রহণ করার প্রশংসা করব!
জোনাস কুর্তিজ

2
@ ক্যালচস সরল পরীক্ষা - চালানোর চেষ্টা করুন copy.exeবা সেমিডিতে copy.com। এটি কাজ করে না - এটি কার্যকর করা যায় না।
লুয়ান

1
@ লুয়ান: সম্পর্কিত ipconfig, আমি আপনার সিদ্ধান্তের সাথে একমত নই। এই প্রশ্নটি একটি কমান্ড লাইনের শুরুতে কী টাইপ করা হয় সে সম্পর্কে। উইন্ডোজ / ডস ফাইলনাম এক্সটেনশনের মাধ্যমে এক্সিকিউটেবলকে চিহ্নিত করে, সুতরাং আপনি কোনও এক্সটেনশন ছাড়াই "আইপকনফিগ" নামে একটি প্রোগ্রাম চালাতে পারবেন না (উইন্ডোজে, ইউনিক্সের বিপরীতে যা এটির অনুমতি দেয়)। পরবর্তী মন্তব্য সম্পর্কে, "ক্যালচাস" কে আমি জানি না। (আপনি যখন একটি চিহ্ন চিহ্ন নির্দিষ্ট করেন, নীচে সাধারণত ব্যবহারকারীর প্রথম অক্ষর থাকে যা পৃষ্ঠায় অন্য কোথাও প্রদর্শিত হয়)) আমি সম্মত, চলমান copy.exeঅভ্যন্তরীণ copyকমান্ড (এবং পাস .exe) ব্যবহার করবে । (আপনি চালাতে পারেন .\copy.exe)
তোগাম

41

আপনি ধরে নিয়েছেন যে একটি কমান্ডের নাম এবং তার যুক্তিগুলি অবশ্যই একটি স্পেস দ্বারা পৃথক করা উচিত, তবে এটি সত্য নয়। যতক্ষণ আহবানটি দ্ব্যর্থহীনভাবে ব্যাখ্যা করা যায় ততক্ষণ প্রার্থনাটি বৈধ।

এই ক্ষেত্রে, প্রথম যুক্তিটি শুরু হয় .এবং .কমান্ড নামের অংশ হতে পারে না, cdএবং ..কেবল দুটি পৃথক টোকেন হিসাবে পার্স করা হয়।

সাধারণত, আপনার প্রথম যুক্তি বর্ণমালা অক্ষর দিয়ে শুরু হবে (উদাহরণস্বরূপ কোনও পথের সূচনা), সুতরাং এটি আপনার কমান্ডের নামটিতে "রক্তপাত করবে" এবং ত্রুটির কারণ ঘটবে… তবে এটি কোনও সিনট্যাক্স সমস্যা নয়। এটি একটি শব্দার্থক।

আপনি অন্যান্য কমান্ডের সাথে কাজের ক্ষেত্রে একই প্রভাব দেখতে পাবেন, সহ echo:

echo...
..

এই ক্ষেত্রে, আমরা মাত্র দুটি সময়সীমার পেতে কারণ কমান্ড নিজেই একটি বিশেষ নিয়ম আছে , যাতে নিম্নলিখিত:echo

echo .

বা, এক্সটেনশন দ্বারা, এটি:

echo.

আউটপুট কেবল একটি খালি লাইন। এটি একটি সুবিধা। স্পষ্টতই এটি যুক্তিতে একটি অগ্রণী সময়কে উপেক্ষা করে প্রয়োগ করা হয়েছে।

আরে, এটি ডস / ব্যাচ। আপনি বিচক্ষণতা চান? : ডি


2
আমি এটি ধরে নিয়েছি কারণ এটি উইন্ডোজ কমান্ড লাইনের অনন্য, উদাহরণস্বরূপ বাশ আপনাকে করতে দেয় নাcd..
জোনাস কুরিটজ

47
@ জোনাসক্রিটজ: এটি সম্পূর্ণ ভিন্ন অপারেটিং সিস্টেমের সম্পূর্ণ ভিন্ন একটি প্রোগ্রাম। আমার সাইকেলটিও অনুমতি দেয় cd..না :)
অরবিট

15
@ জোনাসকুরিটজ:alias cd..='cd ..'
মৌভিচিল

5
@ লাইটনেসেসিনআরবিট: মূলত এটি ফিল্টার আউট করার একটি শর্টকাট ছিল .এবং ..যা অন্য সমস্ত ডিরেক্টরিতে ডিরেক্টরি হিসাবে প্রদর্শিত হয় এবং যতদূর আমি জানি যে এর চেয়ে বেশি কিছু করার ইচ্ছা ছিল না। আমি প্রকৃতপক্ষে ফাইলের নাম থেকে ফাইল নামটি অনুসরণ না করেই ক্লিনার ডিজাইন হিসাবে ফাইলের বৈশিষ্ট্য হিসাবে লুকানো-নেসকে মডেল করা বিবেচনা করি।
জোয়

4
@ জোয়ি - আমি মনে করি যে আরও প্রাসঙ্গিক বিষয়টি ডস পদ্ধতির সহজ ছিল না, এটি যে ডস .ফাইলের নামগুলিতে অনুমতি দেয় না , যার অর্থ এটি কোনও কমান্ড নামের অংশ হতে পারে না তাই যুক্তিটির অংশ হতে হবে । এমনকি ডস কমান্ডটিকে ইউনিক্স শেল হিসাবে আর্গুমেন্টে বিভক্ত করে দিলেও ., কমান্ডের পরে এটি প্রথম যুক্তিতে পরে যাবে কারণ কমান্ডের নামটিতে কোনও অবৈধ চরিত্র রাখার কোনও মানে হয় না।
জুলস

19

cd..কমান্ড সঠিক এবং এটা যে মূল কমান্ড অনুবাদক মত সংজ্ঞায়িত করা হয় command.comযা পরে নামে নামকরণ করা হয় cmd.exe

কমান্ড ইন্টারপ্রেটার কীভাবে প্রক্রিয়া করতে জানে cd.., কারণ .একটি বিশেষ চরিত্র, ঠিক তেমন \


8
আমি অনুমান করি যে মূল বিষয়টি হ'ল কমান্ডটি "সিনট্যাক্টিকালি ভুল" হতে পারে না কারণ সিনট্যাক্সটি আনুষ্ঠানিকভাবে কোথাও নির্দিষ্টভাবে নির্দিষ্ট করা হয়নি , তাই যদি প্রাথমিক বাস্তবায়ন (সেমিডি.এক্সি এবং / অথবা এমএস-ডস) এটি গ্রহণ করে, তবে এটি সঠিক হতে হবে।
মাধ্যাকর্ষণ

3
এছাড়াও, সিডি কোনও প্রোগ্রাম নয়, একটি অভ্যন্তরীণ কমান্ড। ইকো এর অনুরূপ যা এটি একটি অভ্যন্তরীণ কমান্ডও, এটি কাজ করার জন্য এটির কোনও স্থান প্রয়োজন হয় না। echo.ঠিক পাশাপাশি কাজ করে যা খালি লাইন প্রিন্ট করবে।
LPChip

2
@ ওভারমাইন্ড প্রতিধ্বনিও কাজ করবে না, সুতরাং সিডি, প্রতিধ্বনি, এমডি ইত্যাদির সাথে এটি একই
এলপিচিপ

2
@ জোনাসক্রিটজ, এটিকে .বাদ দেওয়া হয়নি তবে কেবল একটি স্থান যুক্ত করা হয়েছে। md.testএবং md .testউভয়ই ডিরেক্টরি তৈরি করে .test। টাইপিং cd.testএবং cd .testডিরেক্টরিতে পরিবর্তন হবে .test
daniel.neumann

6
@ জোনাসকুরিটজ: কারণ সিনট্যাক্সটি কখনও কমান্ড-স্পেস-আর্গুমেন্ট হয় নি।
অরবিট

11

এটি একটি পিছনের সামঞ্জস্য হ্যাক।

কমান্ড লাইন ইন্টারপ্রেটারটি মূল এমএসডিওএস কমান্ড ইন্টারপ্রেটারের কমান্ডগুলির সাথে পিছনের দিকে সামঞ্জস্যপূর্ণ ডিজাইন করা হয়েছে, যা সিপি / এম কমান্ড ইন্টারপ্রেটারের সাথে পিছনে সামঞ্জস্যপূর্ণ হওয়ার জন্য ডিজাইন করা হয়েছিল। সিপি / এম বা এমএসডোস উভয়ই .কোনও ফাইলের নামেই অনুমতি দেয় না (এটি ফাইলের নামের দুটি অংশ, ভিত্তির নাম এবং এক্সটেনশনের মধ্যে বিভাজক হিসাবে ব্যাখ্যা করা হয়েছিল)। এর অর্থ হ'ল (কমপক্ষে ডসের প্রাথমিক সংস্করণগুলির জন্য), কমান্ড ইন্টারপ্রেটার এটি সনাক্ত করতে পারে যদি এটি 'এ পৌঁছে যায়।' (বা প্রকৃতপক্ষে অন্য কোনও চরিত্র যা কোনও ফাইল নামেই অবৈধ ছিল) এটি কমান্ড নামের শেষটি পেরিয়ে গেছে এবং কমান্ড আর্গুমেন্টে ছিল। এটি ডস এবং সিপি / এম উভয় ক্ষেত্রেই বেশ ব্যবহৃত হয়েছিল - উদাহরণস্বরূপ, dir/wএকটি খুব সাধারণ কমান্ড ছিল, dir /wএকটি অনুভূমিক বিন্যাসে ফাইলগুলি তালিকাভুক্ত করার সমতুল্য ।

আজকাল, '।' ফাইলের নামগুলিতে উপস্থিত হতে পারে। এটি কমান্ডগুলি বিশ্লেষণ করার ক্ষেত্রে কিছু জটিলতার সৃষ্টি করে, তবে শেলটি এখনও. এমন একটি শনাক্ত করে যা আর্গুমেন্টের সূচনা হিসাবে কোনও সঠিক ফাইল নামের অংশ নয়। এটি মূলত প্রয়োজনীয় কারণ লক্ষ লক্ষ ব্যবহারকারীর টাইপিংয়ের অভ্যাস বেড়েছে cd..বা তাদের echo.বা এই জাতীয় কোনও কমান্ডের সংখ্যক ব্যাচের ফাইল রয়েছে ।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.