ব্যাচ ফাইল ডিরেক্টরিতে বর্তমান ডিরেক্টরি পরিবর্তন করুন


18

batউইন্ডোতে আমার একটি ফাইল রয়েছে যা একটি প্রোডম্প্প অপারেশন চালায়। ব্যাচ ফাইলের সাথে সমস্যাটি হ'ল কাজটি সম্পাদন করার আগে আমাকে প্রথমে ব্যাচ ফাইল ডিরেক্টরিতে সিডি করা দরকার, অন্যথায় স্ক্রিপ্টটি কাজ করবে না।

বর্তমান ব্যাচ ফাইল ডিরেক্টরিতে কীভাবে পরিবর্তন করবেন?

আমি নিম্নলিখিত কোডটি আমার চেষ্টা করেছিলাম procdump.bat:

cd "%~dp"
procdump -h devenv.exe mydump.txt

তবে এটি ব্যর্থ হয়েছে, ত্রুটি বার্তাটি হ'ল:

ব্যাচ-প্যারামিটার প্রতিস্থাপনে পাথ অপারেটরের নিম্নলিখিত ব্যবহারটি অবৈধ:% ~ dp "

বৈধ বিন্যাসের জন্য CALL / টাইপ করুন? বা ফর /?

সম্পাদনা: প্রদত্ত উত্তরটি কাজ করছে, তবে কেবল একটি ধরা আছে: আমার বর্তমান ডিরেক্টরিটি যদি ব্যাচ ফাইল ডিরেক্টরি থেকে আলাদা হয় তবে আমি "সিস্টেম নির্দিষ্ট পথটি খুঁজে পেতে পারি না" পেয়ে যাব। কারও কোন ধারণা আছে?


আপনি "% ~ dp" কোথা থেকে পাবেন?
ফ্রেটজে

উত্তর:


24

ঠিক আছে, আমি মনে করি আপনি এখানে যা বোঝাতে চেয়েছেন তা পেয়েছি %~dp

আমি মনে করি আপনি যা করতে চান তা হ'ল:

cd /D "%~dp0"

(!) তবে মনে রাখবেন যে বর্তমান ডিরেক্টরিটি অন্য ড্রাইভে থাকা অবস্থায় আপনি যখন আপনার ব্যাচটি চালানোর চেষ্টা করছেন তখন এটি আপনাকে সঠিক আচরণ cdদেয় না কারণ সক্রিয় ড্রাইভটি পরিবর্তন করে না।

সম্পাদনা করুন : আপাতদৃষ্টিতে (ধন্যবাদ @ ইয়ুপার্জিক ) আপনি কমান্ডটিতে /Dপ্যারামিটারটি যুক্ত করতে পারেন যাতে cdএটি সক্রিয় ড্রাইভেও পরিবর্তন করতে পারে।


এই ব্যাচের প্যারামিটারগুলি সম্পর্কে আরও তথ্যের জন্য, help callএকটি cmdপ্রম্পটে দেখুন।
পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

উপায় দ্বারা, আপনি এই জাতীয় পরামিতি একত্রিত করতে পারেন:%~dp0
পরবর্তী বিজ্ঞপ্তি না হওয়া পর্যন্ত বিরতি দেওয়া।

আপনার উত্তর সহায়ক; তবে আমার বর্তমান ডিরেক্টরিটি যদি ব্যাচ ফাইলের ভিন্ন ডিরেক্টরিতে থাকে তবে উপরের কমান্ডটি ব্যর্থ হবে; এমনকি cd /Dবা cd "%~dp0" /Dসাহায্য করতে পারে না।
গ্রাভিটন

@ এনগু শীঘ্রই হুই: যে আপনার বর্তমান দিরটি ব্যাচের ফাইলের থেকে স্পষ্ট ছিল তার চেয়ে আলাদা ডিয়ারে রয়েছে। তবে কেন এই আদেশটি ব্যর্থ হবে? আমি এটি এখানে পরীক্ষা করেছি এবং এটি কাজ করে।
fretje

1
সমাধানটি ব্যবহার করে খুঁজে পেয়েছি cd /D "%~dp0"। ধন্যবাদ।
গ্রাভিটন

4

আমি ফ্রেইজের জবাব দিতে একটা মন্তব্য করব, তবে স্পষ্টতই আমি পারছি না ???


যাইহোক, নোটটি সম্পর্কিত:
তবে নোট করুন যে বর্তমান ডিরেক্টরিটি অন্য ড্রাইভে থাকা অবস্থায় সিডি সক্রিয় ড্রাইভটি পরিবর্তন না করে আপনি যখন আপনার ব্যাচটি কার্যকর করার চেষ্টা করছেন তখন এটি আপনাকে সঠিক আচরণ দেয় না।


/Dআপনার সিডি কমান্ডের স্যুইচটি ব্যবহার করুন এবং সিডি সক্রিয় ড্রাইভে পরিবর্তন করবে।


... তবুও আমি আমার নিজের উত্তর সম্পর্কে মন্তব্য করতে পারি। ম্যান, সার্ভারফল্টে কোনও প্রতিস্থাপন না করতে চুষে ... এখানে কিছু SO রেপ 'বিল্ড' করতে চান।
Yoopergeek

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