কমান্ড প্রম্পটে 'ও' চরিত্রের জন্য কি পালানো আছে?


10

আমি এরকম কিছু চেষ্টা করছি:

set pwd = abc&123
echo password %pwd%

আমি ফলাফল হিসাবে পেয়েছি ...

'123' is not recognized as an internal or external command, operable program or batch file. 
password abc

সিস্টেমটি কি এর মতো নাকি এই জাতীয় চরিত্রগুলির জন্য কি পালাতে পারে?


উত্তর:


8

আপনাকে যা করতে হবে তা হ'ল আপনার পাসওয়ার্ডটি এর মতো ডাবল কোটে মোড়ানো:

set pwd="abc&123"
echo %pwd%

এটা কেমন চলছে আমাকে জানাও.


1
আরেকটি বিকল্প যা কিছু পরিস্থিতিতে বাঞ্ছনীয় হতে পারেset "pwd=abc&123"
হ্যারি জনস্টন

1
-1 এটি অবাক করে দেওয়ার মতো যে এটিতে 5 টি upvotes হয়েছে, এটি ভুল। উইন্ডোজ% var% বা! Var ব্যবহার করে! আপনি নিজে এত সহজে পরীক্ষা করে নিতে পারতেন। $ var লিনাক্সে রয়েছে, আপনি যদি উইন্ডোতে প্রতিধ্বনি করেন তবে এটি কেবল আক্ষরিকভাবে বলেছে $ var
বার্লপ

1
@ বারলপ: প্রশ্নটি সম্বোধন করা অন্য লাইনের মতো দেখতেও আমি এটি দেখতে চাই না matters
হ্যারি জনস্টন

6

আমি দেখতে পেয়েছি যে এটি মার্টিনিউয়ের উত্তর এবং মাস্তশেক ৫7 এর উত্তর উভয়ের সংমিশ্রণে সবচেয়ে ভাল কাজ করে।

set pwd=abc^&123
echo %pwd%

এখনও ব্যর্থ, এবং

set pwd="abc&123"
echo %pwd%

এতে উদ্ধৃতি যুক্ত করে (আপনি forলুপ বা স্ট্রিং ম্যানিপল্টিয়নের সাহায্যে উদ্ধৃতিগুলি সরাতে পারবেন না কারণ এটি আবার ব্যর্থ হবে, অ্যাম্পারস্যান্ডকে ধন্যবাদ), যা এত দুর্দান্ত নয়।

যাহোক,

set "pwd=abc^&123"
echo %pwd%

পুরোপুরি কাজ করে।

আশা করি এইটি কাজ করবে.


+1 টি। সচেতন থাকুন যে এটি ক্যারেটটি পরিবেশের পরিবর্তনশীল হিসাবে ছেড়ে দেয়, যেমন এটি সেট pwdকরে abc^&123। বেশিরভাগ সময় এটি সম্ভবত আপনার যা করা দরকার তা হ'ল, তবে আপনি কী ঘটছেন তা অবগত না থাকলে এটি আপনাকে ধরা দিতে পারে।
হ্যারি জনস্টন

@ হ্যারি জোনস্টন আমাকে অবশ্যই আপনার বানান ত্রুটিটি সংশোধন করতে হবে। এটা carEt। বিটিডব্লু আমি জানি এনটিএমসিডিএস.এইচএম এর উল্লেখ আছে, তবে কোথায় সেন্টিমিডি /? ডকুমেন্টেশন ক্যারেট পালানোর চরিত্র সম্পর্কে উল্লেখ করা হয়?
বার্লোপ

@ বারলপ: তাই এটি; আমি এটি সমকামের সাথে বিভ্রান্ত করছি। একটি সাধারণ নিয়ম হিসাবে /?কেবল একটি সংক্ষিপ্তসার সরবরাহ করে, বিস্তৃত ডকুমেন্টেশন নয়।
হ্যারি জনস্টন

@ বারলপ,? ক্যারেট হ'ল পালানোর চরিত্র।
পেসারিয়ার

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

5

কমান্ড-লাইন রেফারেন্স সহায়তা ফাইল থেকে:

অ্যাম্পারস্যান্ড (&), পাইপ (|) এবং প্রথম বন্ধনী (বিশেষত অক্ষর) যা আপনি যখন আর্গুমেন্ট হিসাবে পাস করেন তখন অবশ্যই পালানোর চরিত্রের (^) বা উদ্ধৃতি চিহ্নের আগে হওয়া আবশ্যক।

মনে হয় পুরো পাসওয়ার্ডটি উদ্ধৃতি চিহ্নগুলিতে রেখে দেওয়া পৃথক অক্ষরগুলি পালনের চেয়ে সহজ হবে যদি এর মধ্যে দুটি অক্ষরেরও বেশি চিকিত্সার প্রয়োজন হয়।


এবং কোটের মধ্যে উদ্ধৃতি?
পেসারিয়ার

3

আপনার যা সত্যই দরকার তা হ'ল:

set pwd=abc^^^&123
echo %pwd%

বা:

set "pwd=abc^&123"
echo %pwd%

ব্যাখ্যা:

যেহেতু &একটি বিশেষ চর, তাই আপনাকে অবশ্যই এটি থেকে পালাতে হবে ^, ফলস্বরূপ ^&

চলমান set pwd=abc^&123মান পরিবর্তনশীল সেট করা হবে abc&123। এর পরে, যদি আপনি চালনা করেন তবে আপনি echo %pwd%কার্যকরভাবে চালাচ্ছেন echo abc&123

তবুও echo abc&123আপনি যেমন প্রত্যাশা করেন তেমন কাজ করে না, কারণ &এটি একটি বিশেষ চর। আপনি উদ্ধৃতি যোগ করে এড়াতে পারবেন: echo "abc&123"তবে আপনার আউটপুটেও উদ্ধৃতি অক্ষর থাকবে। অন্য কথায়, উদ্ধৃতি ব্যবহার করা ঠিক সঠিক সমাধান নয়।

কমান্ডটি &চালানোর সময় আপনার যা প্রয়োজন তা হল চর থেকে পালানো toecho

echo abc^&123

সুতরাং ভেরিয়েবলের মান থাকা দরকার abc^&123। ভেরিয়েবলটি মানটিতে সেট করতে abc^&123আপনাকে বিশেষ অক্ষরগুলি এড়িয়ে চলতে হবে ^এবং &ফলস্বরূপ:

set pwd=abc^^^&123


দুর্দান্ত কাজ করে, আপনাকে ধন্যবাদ। এই এস্কেপ অক্ষর কিছু কারণে এ দস্তাবেজে অন্তর্ভুক্ত উল্লেখ নেই docs.microsoft.com/en-us/windows-server/administration/...
সের্গেই Smolnikov
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.