উত্তরগুলি প্রদান করে যে এটি মায়া করে যে এটি কাজ করে, তবুও সত্য আপনি সাধারণ স্পেসিফিক সিএমডি আর্গুমেন্টে ছিঁচতে পারবেন না। এটি প্রমাণ করা সহজ:
echo %1হিসাবে " " সংরক্ষণ করুন test.bat। এই ব্যাচ ফাইলটি প্রথম যুক্তিটি আউটপুট দেয় যা সেমিডি আমাদের পাস করে।
এখন, চেষ্টা করুন এবং চালানোর test.bat, মান নির্ধারণের %1জন্য foo bar। (নোট করুন fooএবং এর মধ্যে একটি স্পেস চর রয়েছে bar))
কয়েক বছরের জন্য ট্রায়াল-এন্ড ত্রুটি এবং বুঝতে পারেন যে এটি করার কোনও উপায় নেই । লোকেরা ব্যবহার করে পালানোর পরামর্শ দিবে ^, তবুও test.bat foo^ barআউটপুট আসবে না foo bar।
সুতরাং, আউটপুট পাওয়ার কোনও উপায় নেই foo bar, এবং আমরা যে নিকটতম পেতে পারি তা হ'ল test.bat foo" "barযা উত্পাদন করে foo" "bar, বা চালিত test.bat "foo bar"যা উত্পাদন করে "foo bar"।
এখন, কারণ অন্যান্য উত্তর প্রদর্শিত কাজে কারণ cdনেই এটা নিজের এর অতিরিক্ত পার্সিং স্বাভাবিক যুক্তি ক্ষণস্থায়ী আচরণ (চলিত থেকে বিচ্যুত %1, %2, %3এবং সাধারণত ব্যাচ ফাইলের মধ্যে ইত্যাদি)।
উদাহরণস্বরূপ, অদ্ভুত আদেশটি বিবেচনা করুন:
cd c:\documents and settings \some folder with spaces
কেন এটি কাজ করে? এই কারণে cd নিজেই কিছু 7 যোগদান সমতুল্য করছেন স্বাভাবিক এক যৌক্তিক এক মধ্যে আর্গুমেন্ট। সেন্টিমিডি আর্গুমেন্ট পাস করার নিয়ম অনুসারে, আমরা 7 টি যুক্তি দেখি:
c:\documents
and
settings
\some
folder
with
spaces
এটি যেমন cd7 টি যুক্তিগুলিকে একটি যৌক্তিক হিসাবে যুক্ত করেছে, এর মতো কিছু করছে array.join(" ")যা পথ তৈরি করে:
c:\documents and settings \some folder with spaces
মনে রাখবেন যে এই আচরণটি কেবলমাত্র (এবং কিছু অন্যান্য ক্রিয়া) কাছে অদ্ভুতcd । এটির সাথে সাধারণ যুক্তি পাস করার কোনও সম্পর্ক নেই।
আসলে, cdঅন্য এক বিশেষত্ব আছে। মনে রাখবেন আমরা উপরে বলেছি যে আমরা আউটপুটটি পাই না foo bar? আমরা যে নিকটতম আউটপুটটি পেতে পারি তা হল চালানো:
test.bat foo" "bar
যা উত্পাদন করে foo" "bar, বা:
test.bat "foo bar"
যা উত্পাদন করে "foo bar", বা:
test.bat "foo "bar
যা উত্পাদন করে "foo "bar, বা:
test.bat foo" bar"
যা উত্পাদন করে foo" bar", বা:
test.bat "foo b"ar
যা উত্পাদন করে "foo b"ar, বা:
test.bat fo"o bar"
যা উত্পাদন করে fo"o bar", বা:
test.bat fo"o ba"r
যা উত্পাদন করে fo"o ba"r, বা:
test.bat "fo"o" bar"
যা উত্পাদন করে "fo"o" bar", বা:
test.bat "f""o""o"" ""b""a""r":
যা উত্পাদন করে "f""o""o"" ""b""a""r"বা এমনকি:
test.bat """"f"""o""""o"" ""ba"""r"""""""""":
যা উত্পাদন করে """"f"""o""""o"" ""ba"""r""""""""""।
উপরের সমস্ত উদাহরণগুলির মধ্যে একটি মিল রয়েছে, যা তারা foo barচরিত্রগুলি ছাঁটাই করার পরে তৈরি করবে "। cdএর লেখক অবশ্যই এটি উপলব্ধি করতে পেরেছিলেন ... যদি আমরা এই cdঅদ্ভুত আচরণ থেকে অনুধাবন করি যা এটি প্রাপ্ত সমস্ত আদেশকে ছাঁটাই করে" , এই সমস্ত আদেশকে কাজ করার অনুমতি দেয়:
cd c:\documents and settings
cd "c:\documents and settings"
cd "c:"\"documents and settings"
cd c:\"documents" "and" "settings"
cd c:\"docu"ments an"d set"tings"
cd c:"\"docu"ments an"d set"ti"""ngs
cd "c"":""\"docu"ments an"d set"ti"""ngs
cd "c"":""\"do""cu"me"nts a"n""d set"ti"""ngs
cd c"""":""""\"""d"""oc""""u"me"""""nt"s a"n""d set"""""""ti""""ngs