Internal 'অভ্যন্তরীণ বা বাহ্যিক আদেশ হিসাবে স্বীকৃত নয়


25

PsExec ব্যবহার করে নির্দিষ্ট ফাইল (প্রধানত ব্যাচ) চালানোর সময় আমি আমার কমান্ডের আগে এই অদ্ভুত ols 'চিহ্নগুলি পাই। আমার প্রাথমিক ধারণাটি ছিল, আমি ভুল এনকোডিং ব্যবহার করছি, তবে যাচাইয়ের পরে, আমি বুঝতে পারি যে আমার সমস্ত ফাইলগুলি ইউটিএফ -8 ব্যবহার করছে।


পরিবর্তে এগুলিকে কেন ইউটিএফ -16LE এ রূপান্তর করবেন না?
Ignacio Vazquez-Abram

পার্থক্য কি?
মাইস্ট্যাসেমিয়া

পার্থক্যটি হ'ল উইন্ডোজ সাধারণত ইউটিএফ -8 ব্যবহার করে না।
Ignacio Vazquez-Abram

উত্তর:


32

আমি আমার কমান্ডের আগে এই অদ্ভুত symb 'চিহ্নগুলি পেয়েছি […] আমার সমস্ত ফাইলগুলি ইউটিএফ -8 ব্যবহার করছে।

এর দুটি কারণ রয়েছে:

  1. cmd.exe ইউটিএফ -8 সমর্থন করে না। এটি সিস্টেমের আঞ্চলিক সেটিংসের উপর নির্ভর করে সর্বদা একক বাইট এনকোডিংগুলিকে প্রায়শই "OEM" - cp437, cp775 এবং অন্যরকম ব্যবহার করে।

    (আমি এটিও ইউটিএফ -16 সমর্থন করার প্রত্যাশা করেছি, তবে দৃশ্যত তা নয়; এমনকি আমি ইউটিএফ -16 বিওএম যোগ করলেও নয় not)

  2. আপনার পাঠ্য সম্পাদক EF BB BFসমস্ত UTF-8 ফাইলের শুরুতে একটি UTF-8 "বাইট অর্ডার চিহ্ন" (বাইটস ) যুক্ত করছেন।

    যখন cmd.exe আপনার স্ক্রিপ্টটি পড়ে, চিহ্নটি দিয়ে কী করা যায় তা এটি জানে না - এটি বিওএমকে তিনটি সাধারণ সিপি 437 অক্ষর হিসাবে দেখায় এবং কমান্ড নামের অংশ হিসাবে সেগুলি ব্যবহার করার চেষ্টা করে।

ইউটিএফ -8 – এনকোডযুক্ত ফাইলগুলিতে বিওএম যোগ করা বন্ধ করতে আপনার সম্পাদককে কনফিগার করুন। (এটি কেবল ইউটিএফ -16 এ উপলব্ধি করে এবং এটি ইউটিএফ -8 এ খুব অকেজো is )

কোনও ব্যাচের ফাইলগুলি সংকলন করে কোনও এক্সিকে সমস্যার সমাধান করতে পারে?

আহ

কি


3
আমি বলব না যে ইউটিএফ -8 এ বিওএমগুলি "খুব অকেজো"; যদিও তারা এই বিশেষ ক্ষেত্রে হয়। অনেকগুলি অ্যাপ্লিকেশন সেগুলি পাঠ্যটি নির্ধারণ করতে ব্যবহার করে আসলে ইউটিএফ -8 এবং অন্য এনকোডিং নয়।
ডোর হাই আর্চ

19

ডসোলিম্যানোর উত্তরটি আরও জানাতে , আপনি যদি বিশেষত ভিজ্যুয়াল স্টুডিওটি ব্যবহার করেন এবং আমার ক্ষেত্রে এটি 2013 হয় তবে আমি নিম্নলিখিতটি করে এটি স্থির করেছি:

  1. ওপেন ভিজ্যুয়াল স্টুডিও
  2. সরঞ্জামগুলি > বিকল্পগুলিতে ক্লিক করুন ।
  3. পাঠ্য সম্পাদক > ফাইল এক্সটেনশান ক্লিক করুন ।
  4. ইন এক্সটেনশন বক্স, লিখুন ব্যাট
  5. ইন সম্পাদক ড্রপ ডাউন নির্বাচন সোর্স কোড (পাঠ্য) এনকোডিং এর সাথে সম্পাদক এবং ক্লিক করুন যোগ
  6. সংরক্ষণ এবং প্রস্থান করতে ওকে ক্লিক করুন।

এখন, আপনি যখন ভিজ্যুয়াল স্টুডিওর মধ্যে থেকে একটি .bat ফাইল খুলবেন, তখন আপনাকে প্রাথমিকভাবে প্রম্পট দেওয়া হবে:

এখানে চিত্র বর্ণনা লিখুন

আপনি আপনার ভাষার ডস বিকল্পটিতে না আসা পর্যন্ত আপনি বিকল্পগুলি দিয়ে যেতে চাইবেন :

এখানে চিত্র বর্ণনা লিখুন

ফাইলটি খোলার কাজ শেষ করতে ওকে ক্লিক করুন।


ঠিক আছে, যদিও এই মুহুর্তে এটি মোটামুটি সুস্পষ্ট হওয়া উচিত, আপনি যদি ∩╗┐নিজের ফাইলের শুরুতে অক্ষরগুলি দেখতে পান তবে এখন সঠিক এনকোডিং সহ ফাইলগুলি সরিয়ে ফেলা এবং সংরক্ষণ করা আপনাকে সুন্দর করবে। এটি আপনাকে পরের বার আবার অনুরোধ করা থেকে বিরত রাখবে।


এই সমস্ত জায়গার সাথে, আপনি জেনে খুশি হবেন যে আপনি এখন ভিজুয়াল স্টুডিওর মধ্যে থেকে আপনার .bat ফাইল (গুলি) দেখতে , সম্পাদনা করতে এবং সংরক্ষণ করতে পারেন যাতে সেমিডি.এক্সে আপনাকে এর পূর্বোক্ত জঘন্য ত্রুটি দেয় না:

'∩╗┐' কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড, অপারেবল প্রোগ্রাম বা ব্যাচ ফাইল হিসাবে স্বীকৃত নয়।


2
এই ফিক্সটি ভিএস ২০১7-এ পুরোপুরি কার্যকরভাবে কাজ করে
গ্রেগ ট্র্যাভেলিক

1
আমি এই অনুমান করতে হবে না। এখনও ভিএস2019 এর জন্য একটি বৈধ সমাধান।
hbulens

10

সেই ইউনিকোড হয় বাইট অর্ডার মার্কস । Cmd.exe তাদের বুঝতে পারে না। আপনি যদি এএনএসআই এনকোডিং সহ নোটপ্যাডে আপনার ফাইলগুলি পুনরায় সংরক্ষণ করেন তবে সমস্যাটি ঠিক করা উচিত।

উদাহরণস্বরূপ, আমি এই ব্যাচ ফাইলটি তৈরি করেছি:

echo Hello World

প্রথমে আমি এটি ইউটিএফ -8 এনকোডিং দিয়ে সংরক্ষণ করি

C:\Users\DSolimano\Desktop\junk>test.bat

C:\Users\DSolimano\Desktop\junk>echo Hello World
'echo' is not recognized as an internal or external command,
operable program or batch file.

তারপরে ইউনিকোড দিয়ে

C:\Users\DSolimano\Desktop\junk>test.bat

C:\Users\DSolimano\Desktop\junk>■e
'■e' is not recognized as an internal or external command,
operable program or batch file.

এবং অবশেষে এএনএসআইয়ের সাথে

C:\Users\DSolimano\Desktop\junk>test.bat

C:\Users\DSolimano\Desktop\junk>echo Hello World
Hello World

4

যেমনটি আগেই ব্যাখ্যা করা হয়েছে, এই অক্ষরটি হ'ল ইউনিকোড চরিত্র বিওএম (বাইট অর্ডার মার্ক) স্বাক্ষর হিসাবে ব্যবহৃত হয় এবং এটি সেমিডি.এক্সই স্বীকৃতি দেয় না।

আপনি এটি বিভিন্ন উপায়ে নিরাপদে মুছতে পারেন।

আমি নিম্নলিখিত হিসাবে করা খুব সহজ খুঁজে পেয়েছি:

  1. নোটপ্যাড ++ এ ফাইলটি খুলুন
  2. যেতে এনকোডিং মেনু
  3. বিকল্পটি টিক দিন: বিওএম ছাড়াই ইউটিএফ -8 এ এনকোড করুন
  4. সংরক্ষণ করুন, এবং এটি।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.